服务端:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MAXLINE 1024
int main(int argc,char **argv)
{
int listenfd,connfd;
struct sockaddr_in sockaddr;
char buff[MAXLINE];
int n;
memset(&sockaddr,0,sizeof(sockaddr));
sockaddr.sin_family = AF_INET;
sockaddr.sin_addr.s_addr = htonl(INADDR_ANY);
sockaddr.sin_port = htons(10004);
listenfd = socket(AF_INET,SOCK_STREAM,0);
bind(listenfd,(struct sockaddr *) &sockaddr,sizeof(sockaddr));
listen(listenfd,1024);
printf("Please wait for the client information\n");
for(;;){
if((connfd = accept(listenfd,(struct sockaddr*)NULL,NULL))==-1)
{
printf("accpet socket error: %s errno :%d\n",strerror(errno),errno);
continue;
}
n = recv(connfd,buff,MAXLINE,0);
buff[n] = '\0';
printf("recv msg from client:%s",buff);
close(connfd);
}
close(listenfd);
}
客户端:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MAXLINE 1024
int main(int argc,char **argv)
{
char *servInetAddr = "127.0.0.1";
int socketfd;
struct sockaddr_in sockaddr;
char recvline[MAXLINE], sendline[MAXLINE];
int n;
if(argc != 2){
printf("client \n");
exit(0);
}
socketfd = socket(AF_INET,SOCK_STREAM,0);
memset(&sockaddr,0,sizeof(sockaddr));
sockaddr.sin_family = AF_INET;
sockaddr.sin_port = htons(10004);
inet_pton(AF_INET,servInetAddr,&sockaddr.sin_addr);
if((connect(socketfd,(struct sockaddr*)&sockaddr,sizeof(sockaddr))) < 0 ){
printf("connect error %s errno: %d\n",strerror(errno),errno);
exit(0);
}
printf("send message to server\n");
fgets(sendline,1024,stdin);
if((send(socketfd,sendline,strlen(sendline),0)) < 0){
printf("send mes error: %s errno : %d",strerror(errno),errno);
exit(0);
}
close(socketfd);
printf("exit\n");
exit(0);
}
运行结果:
服务端
./s
Please wait for the client information
客户端
./c 192.168.240.128
send message to server
ddddds
exit
服务端
./s
Please wait for the client information
recv msg from client:ddddds
阅读(1760) | 评论(0) | 转发(0) |