预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

网络编程的流程: 客户端: 创建一个socket; 绑定socket(IP,端口号); 因为在connect()中已经绑定了,所以不需要用blind()函数来绑定。 serv_addr.sin_family=AF_INET; serv_addr.sin_port=htons(MYPORT);//端口号也就是进程,相当于应用程序的编号。 端口号要与服务端的一致,所以绑定的端口号是服务端的端口号 serv_addr.sin_addr.s_addr=inet_addr(IP);//绑定的IP是本机的IP 发送建立连接请求connect(); 收到连接响应; 发送数据send(); 关闭socket,close(sock_fd)。 服务端端: 创建一个socket; 绑定socket(IP,端口号),blind(); my_addr.sin_family=AF_INET; my_addr.sin_port=htons(MYPORT);//绑定的端口号是自己的端口号 my_addr.sin_addr.s_addr=INADDR_ANY;//IP是客户端任意一个IP 侦听来自客户端的连接请求,listen(); 有客户端连接请求,为建立请求的客户端创建一个socket,返回连接响应,accept(); 接受客户端发送的数据,recv(); 关闭,close(new_fd)。 #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<sys/wait.h> #defineMYPORT3999//listeningport #defineBACKLOG10//maxconnectrequests #defineMAXDATASIZE100/*maxdatavolume*/ #defineIP"127.0.0.1" main(intargc,char*argv[]) { intsock_fd,numbytes; //char*buf; //buf=(char*)malloc(20); charbuf[20]; structhostent*host; structsockaddr_inserv_addr; /*socket*/ if((sock_fd=socket(AF_INET,SOCK_STREAM,0))==-1) { perror("socketcreaterror"); exit(1); } serv_addr.sin_family=AF_INET; serv_addr.sin_port=htons(MYPORT); //serv_addr.sin_addr=inet_addr(IP); serv_addr.sin_addr.s_addr=inet_addr(IP); bzero(&(serv_addr.sin_zero),8); /*connect*/ if(connect(sock_fd,(structsockaddr*)&serv_addr,sizeof(structsockaddr))==-1) { perror("connecterror"); exit(1); } printf("Pleaseenterthestring:\n"); gets(buf); /*send*/ if((numbytes=send(sock_fd,buf,strlen(buf),0))==-1) { perror("senderror"); exit(1); } printf("send:%d\n",numbytes); close(sock_fd); exit(0); } #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<sys/wait.h> #defineMYPORT3999 //listeningport #defineBACKLOG10 //maxconnectrequests #defineMAXDATASIZE100 /*maxdatavolume*/ main() { intsock_fd,new_fd,numbytes; /*sock_fd:listeningsocket;new_fd:datasock