//echo_s.c#include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h> #include <arpa/inet.h> #include <sys/wait.h>#define PORT 4567 //服务器监听端口#define MAXLISTENNUM 10 // 设定最大监听数量#define MAXSIZE 100 //设定最大数据传输量int main(int argc, char* argv[]){ char szrecvbuf[MAXSIZE]; memset(szrecvbuf,0,sizeof(szrecvbuf)); int nlisten_sock;//监听socket int naccetp_sock;//数据传输socket struct sockaddr_in local_addr;//本地地址信息 struct sockaddr_in remote_addr;//客户端地址信息 int nsize = sizeof(struct sockaddr_in); if(-1 == (nlisten_sock = socket(AF_INET,SOCK_STREAM,0))) { printf("create socket error!/n"); } local_addr.sin_family = AF_INET; local_addr.sin_port = htons(PORT); local_addr.sin_addr.s_addr = INADDR_ANY; bzero(&(local_addr.sin_zero),8); if(-1 == bind(nlisten_sock,(struct sockaddr*)&local_addr,sizeof(struct sockaddr))) {printf("bind error!/n"); } if(-1 == listen(nlisten_sock,MAXLISTENNUM)) {printf("listen error!/n"); } while(1) {if(-1 == (naccetp_sock = accept(nlisten_sock,(struct sockaddr*)&remote_addr,&nsize))){printf("accept error!/n");continue;}else{printf("server: got connection from %s/n",inet_ntoa(remote_addr.sin_addr));size_t slen = send(naccetp_sock,"hello!!!!",10,0);if(0 == slen){printf("send error!/n");close(naccetp_sock);return 0;}else{printf("server send data: hello!!!!/n");printf("server send %d bytes/n",slen);}size_t srecvlen = recv(naccetp_sock,szrecvbuf,MAXSIZE,0);if(0 == srecvlen){printf("recv error!/n");}else{printf("recv client data :%s /n",szrecvbuf);}close(naccetp_sock);} } close(nlisten_sock); return 0;}//=====================================================//echo_c.c #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h> #include <arpa/inet.h> #include <sys/wait.h> #include <netdb.h>#define PORT 4567 //服务器监听端口#define MAXSIZE 100 //设定最大数据传输量int main(int argc, char* argv[]){ int nlocal_sock; struct sockaddr_in remote_addr;//远程地址信息 char szrecvbuf[MAXSIZE];char szsendbuf[MAXSIZE]; memset(szrecvbuf,0,sizeof(szrecvbuf));memset(szsendbuf,0,sizeof(szsendbuf)); int nsize = sizeof(struct sockaddr_in); if(-1 == (nlocal_sock = socket(AF_INET,SOCK_STREAM,0))) { printf("create socket error!/n"); } remote_addr.sin_family = AF_INET; remote_addr.sin_port = htons(PORT); remote_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); bzero(&(remote_addr.sin_zero),8); if(-1 == (connect(nlocal_sock,(struct sockaddr*)&remote_addr,sizeof(struct sockaddr)))) {printf("connect error!/n"); } size_t slen = recv(nlocal_sock,szrecvbuf,MAXSIZE,0); if(0 == slen) { printf("recv error!/n"); }else{printf("Clinet recv date from Server: %s/n",szrecvbuf);size_t slen = send(nlocal_sock,szrecvbuf,MAXSIZE,0);if(0 == slen){ printf("send error!/n");}else{printf("client send data: %s/n",szrecvbuf);printf("client send %d bytes/n",slen);}} close(nlocal_sock); return 0;}//echo_s.c#include <stdio.h> #include <stdlib.h 你的当前访问异常,请进行认证后继续阅读剩余内容。 提交