基于socket的网络聊天系统开发与设计—毕业设计内容摘要:

T; =htons(1088); /*将端口号转换成为网络字节顺序 */ =i_addr(“”) ;/*将 IP 地址串转换成为内部表示地址信息 */ ServerSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); /*分配服务器套接字 */ if(ServerSocket0) { perror(“Can39。 t allocate a new socket! n”) ; return; } socklen=sizeof(ServerSocketAddr); ret=bind(ServerSocket,amp。 ServerSocketAddr,Socklen); /*将该套接字与服务器通信地址信息绑定 */ if(ret==1) { perror(“Can39。 t bind the new socket to socketaddress”) ; close(ServerSocket); return; } (2)步骤三,进入监听客户端连接请求状态,并进入等待客户连接请求状态 if(listen(ServerSocket,5)0)/*建立长度为 5 的请求队列,以允许多个五个客户端同时连接 /* { perror(“Listen error ; ”) ; close(ServerSocket); return; } for(;; ) { newsocket=accept(ServerSocket,amp。 sockaddr,amp。 socklen); /*监听客户连接请求,如果没客户端连接,程序将一直在此等待 */ /*连接建立后,用生成的新套接字来处理当前连接请求,而原来监听的套接字继续监听别的连接请求 */ if(newsocket0) { perror(“Accept request failure”) ; close(ServerSocket); return; } if (fork()==0)/*生产子进程来处理连接后的任务 */ } close(ServerSocket); DO{ „„ /*执行连接以后 的通信任务 */ } /*fork 结束 */ } /*循环体结束 */ 三、 Visul C++ 提供的 SOCKET 编程机制 在 Visul C++ 中提供了 CAsyncSocket、 CSocket 等 MFC 类来实现网络通信,其中 CSocet 类是 CAsyncSocket 的派生类,它更适合于不需要对网络编程了解太深的应用开发。 下面以 CAsyncSocket 类为例来介绍 Visul C++ 中套接字编程的实现。 在使用 CAsyncSocket 时,最好是从该类派生一新类,以便于开发者接管CAsyncSocket 的消息机制,这样开发者可以重写这些消息响应方法,以进行适合自己的处理,这些响应方法包括: virtual void OnClse(int nErrorCode); //收到对方端开连接时的响应方法 virtual void OnConnect(int nErrorCode); //客户端向对方发出连接请求后收到对方应答时的响应方法 virtual void OnAccept(int nErrorCode); //服务器端可以接收客户连接请求时的响应方法 virtual void OnReceive(int nE。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。