《TCP服务器端和一个TCP客户端通信的程序过程.doc》由会员分享,可在线阅读,更多相关《TCP服务器端和一个TCP客户端通信的程序过程.doc(2页珍藏版)》请在三一文库上搜索。
1、TCP服务器端和一个TCP客户端通信的程序过程服务器端:创建一个SocketsFd=socket(AF_INET,SOCK_STREAM,0)把Socket和本机的IP,TCP口绑定bind(sFd,(structsockaddr*)&serverAddr,sockAddrSize)为客户连接创建等待队列listen(sFd,SERVER_MAX_CONNECTIONS)这里循环等待,如有客户连接请求,则接受客户机连接要求accept(sFd,(structsockaddr*)&clientAddr,&sockAddrSize)接受客户机发来的信息fioRead(sFd,(char*)&cli
2、entRequest,sizeof(clientRequest)给客户机发信息write(sFd,replyMsg,sizeof(replyMsg)关闭Socket,通信终止close(sFd)客户端:创建一个SocketsFd=socket(AF_INET,SOCK_STREAM,0)注意:客户端不需要绑定,因为TCP口是动态的.向服务器端发送连接请求,并在这里等待回应,如收到回应则向下执行connect(sFd,(structsockaddr*)&serverAddr,sockAddrSize)服务器接受连接请求后,读服务器发过来的信息read(sFd,buffer,20)向服务器发信息w
3、rite(sFd,buffer,20);关闭Socketsclose(sFd)UDP服务器端和一个UDP客户端通信的程序过程服务器端:创建一个SocketsFd=socket(AF_INET,SOCK_DGRAM,0)把Socket和本机的IP,TCP口绑定bind(sFd,(structsockaddr*)&serverAddr,sockAddrSize)不需要创建等待队列这里循环等待,如有客户连接则接受,并读取客户发来的信息recvfrom(sFd,(char*)&clientRequest,sizeof(clientRequest),0,(structsockaddr*)&clientAddr,&sockAddrSize)关闭Socket,通信终止close(sFd)客户端:这里不建立连接,只是数据收发-创建一个SocketsFd=socket(AF_INET,SOCK_DGRAM,0)注意:客户端不需要绑定,因为UCP口是动态的.向服务器端发送连接请求和信息,这里不等待服务器的响应sendto(sFd,(caddr_t)&myRequest,sizeof(myRequest),0,(structsockaddr*)&serverAddr,sockAddrSize)关闭Socketsclose(sFd)