文档详情

电子科技大学网络编程作业(字符反转)

des****85
实名认证
店铺
DOCX
68.24KB
约4页
文档ID:260438461
电子科技大学网络编程作业(字符反转)_第1页
1/4

精选优质文档-----倾情为你奉上网络编程作业2要求:客户端:l 从命令行读入服务器的IP地址;并连接到服务器;l 循环从命令行读入一行字符串,并传递给服务器,由服务器对字符串反转,并将结果返回客户程序;l 客户程序显示反转后的字符串;服务器端:l 接收客户的连接请求,并显示客户的IP地址和端口号;l 接收客户传来的字符串,反转后传递给客户;实验过程:服务器端程序:#include #include #include #include #include #include #include #include #define PORT 9999#define BACKLOG 1#define MAXDATASIZE 100int main(void){ int listenfd, connectfd,i,n,m; char buf[MAXDATASIZE],rever[MAXDATASIZE]; struct sockaddr_in server, client; int sin_size; if((listenfd=socket(AF_INET, SOCK_STREAM, 0))==-1) { perror("Create socket failed."); exit(-1); } int opt = SO_REUSEADDR; setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)); bzero(&server, sizeof(server)); server.sin_family = AF_INET; server.sin_port = htons(PORT); server.sin_addr.s_addr = htonl(INADDR_ANY); if (bind(listenfd, (struct sockaddr *)&server, sizeof(struct sockaddr))==-1) { perror("Bind error."); exit(-1); } if (listen(listenfd, BACKLOG) == -1) { perror("listen error."); exit(-1); } sin_size = sizeof(struct sockaddr_in); while(1) { if ((connectfd = accept(listenfd, (struct sockaddr *)&client, &sin_size)) == -1) { perror("accept error."); exit(-1); } printf("You get a connection from %s:%d\n", inet_ntoa(client.sin_addr),client.sin_port); send(connectfd, "Welcome to my server.\n", 22, 0); while((n=read(connectfd,buf,MAXDATASIZE))>0) { puts(buf); m=n; n--; for(i=0;i#include #include #include #include #include #include #define PORT 9999#define MAXDATASIZE 100int main(int argc, char *argv[]){ int i, fd, numbytes; char buf[MAXDATASIZE], sendstr[MAXDATASIZE], recstr[MAXDATASIZE]; struct hostent * he; struct sockaddr_in server; if (argc != 2) { printf("Usage: %s \n", argv[0]); exit(-1); } if ((he = gethostbyname(argv[1])) == NULL) { perror("gethostbyname error."); exit(1); } if ((fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("Create socket failed."); exit(1); } bzero(&server, sizeof(server)); server.sin_family = AF_INET; server.sin_port = htons(PORT); server.sin_addr = *((struct in_addr *) he->h_addr); if (i=connect(fd, (struct sockaddr *)&server, sizeof(struct sockaddr)) == -1) { perror("connect failed."); exit(1); } if( ((numbytes = recv(fd, buf, MAXDATASIZE, 0)) == -1)) { perror("recv error."); exit(1); } buf[numbytes] = '\0'; printf("Server Message: %s",buf); while(i!= -1) { printf("Please input a string:"); gets(sendstr); write(fd,sendstr,strlen(sendstr)+1); read(fd,recstr,MAXDATASIZE); puts(recstr); } close(fd);}实验结果:专心---专注---专业。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档