简单实现服务器/客户端的c代码

时间:2023-03-09 08:10:06
简单实现服务器/客户端的c代码
 #include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include <unistd.h> int main() {
/* socket */
int soc_ser_l=socket(PF_INET,SOCK_STREAM,); /* creat server sockaddr_in */
struct sockaddr_in ser_addr;
ser_addr.sin_family=AF_INET;
ser_addr.sin_addr.s_addr=htonl(INADDR_ANY);
ser_addr.sin_port=htons();
memset(ser_addr.sin_zero,,); /* bind connect socket and ip/port */
if(bind(soc_ser_l,(struct sockaddr*)&ser_addr,sizeof(ser_addr))==-)
{
printf("bind error");
return ;
} /* listen */
if(listen(soc_ser_l,)==-)
{
printf("listen error");
return ;
}
/* creat items */
int soc_ser_t;
struct sockaddr_in cli_addr;
while (){
/* accept */
int len=sizeof(ser_addr);
soc_ser_t=accept(soc_ser_l,(struct sockaddr *)&cli_addr,&len);
if(soc_ser_t==-){
perror("accept error");
exit();
} /* recv data */
char recv_buf[];
int ret=recv(soc_ser_t,recv_buf,,);
if(ret>){
recv_buf[ret]='\0';
printf("server recv:");
printf("%s\n",recv_buf);
} /* send data */
char send_msg_str[];
printf("server send:");
fgets(send_msg_str,,stdin);
*(strchr(send_msg_str,'\n'))='\0';
send(soc_ser_t,send_msg_str,strlen(send_msg_str),);
close(soc_ser_t);
} close(soc_ser_l);
return ;
}
 #include<stdio.h>
#include<string.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h> int main(){
/* creat client socket */
int soc_cli=socket(PF_INET,SOCK_STREAM,);
/* creat server sockaddr_in */
struct sockaddr_in ser_addr;
ser_addr.sin_family=PF_INET;
ser_addr.sin_addr.s_addr=inet_addr("192.168.195.129");
ser_addr.sin_port=htons();//8888 port number has no ""
memset(ser_addr.sin_zero,,); /* connect */
if(connect(soc_cli,(struct sockaddr*)&ser_addr,sizeof(ser_addr))==-){
printf("connect error");
return ;
} /* send */
char cli_send_str[];
printf("client send:");
fgets(cli_send_str,,stdin);
*(strchr(cli_send_str,'\n'))='\0'; send(soc_cli,cli_send_str,strlen(cli_send_str),); /* recv */
char cli_recv[];
int ret=recv(soc_cli,cli_recv,,);
if(ret>){
cli_recv[ret]='\0';
printf("client recv:");
printf("%s\n",cli_recv);
} close(soc_cli);
return ;
}