VC++ 基于UDP的控制台聊天程序socket通信
来源:互联网 发布:网络监控工程宝怎么用 编辑:程序博客网 时间:2024/05/17 02:21
程序分为客户端和服务器端,具体实现过程可以看前面的文章 VC++ socket通信 总结
下面把服务端和客户端程序列出来。
服务器端程序:
#include <WINSOCK2.H>#include <stdio.h>void main(){WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 1, 1 );err = WSAStartup( wVersionRequested, &wsaData );if ( err != 0 ) {return;}if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 ) {WSACleanup( );return; }SOCKET sockSrv=socket(AF_INET,SOCK_DGRAM,0);SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);addrSrv.sin_family=AF_INET;addrSrv.sin_port=htons(6000);bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));char recvBuf[100];char sendBuf[100];char tempBuf[200];SOCKADDR_IN addrClient;int len=sizeof(SOCKADDR);while(1){recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR*)&addrClient,&len);if ('q'==recvBuf[0]){sendto(sockSrv,"q",strlen("q")+1,0,(SOCKADDR*)&addrClient,len);printf("chat end!\n");break;}sprintf(tempBuf,"%s say : %s",inet_ntoa(addrClient.sin_addr),recvBuf);printf("%s\n",tempBuf);printf("Please input data:\n");gets(sendBuf);sendto(sockSrv,sendBuf,strlen(sendBuf)+1,0,(SOCKADDR*)&addrClient,len);}closesocket(sockSrv);WSACleanup();}客户端程序如下:
#include <WINSOCK2.H>#include <stdio.h>void main(){WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 1, 1 );err = WSAStartup( wVersionRequested, &wsaData );if ( err != 0 ) {return;}if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 ) {WSACleanup( );return; }SOCKET sockClient=socket(AF_INET,SOCK_DGRAM,0);SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");addrSrv.sin_family=AF_INET;addrSrv.sin_port=htons(6000);char recvBuf[100];char sendBuf[100];char tempBuf[200];int len=sizeof(SOCKADDR);while(1){printf("Please input data:\n");gets(sendBuf);sendto(sockClient,sendBuf,strlen(sendBuf)+1,0,(SOCKADDR*)&addrSrv,len);recvfrom(sockClient,recvBuf,100,0,(SOCKADDR*)&addrSrv,&len);if ('q'==recvBuf[0]){sendto(sockClient,"q",strlen("q")+1,0,(SOCKADDR*)&addrSrv,len);printf("chat end!\n");break;} sprintf(tempBuf,"%s say : %s",inet_ntoa(addrSrv.sin_addr),recvBuf);printf("%s\n",tempBuf);}closesocket(sockClient);WSACleanup();}
下面是程序的运行界面:
By 刘洼村
- VC++ 基于UDP的控制台聊天程序socket通信
- 基于UDP的控制台聊天程序
- VC++编写的Socket udp通信程序
- 基于Udp的Socket网络编程聊天程序
- 基于Udp的Socket网络编程聊天程序
- 基于UDP的聊天程序
- 基于UDP的聊天程序
- 基于C# Winform的简易聊天程序[socket通信]
- 基于UDP的socket通信
- 基于UDP的Socket通信
- linux环境下基于udp socket简单聊天通信
- udp网络聊天控制台程序
- 基于UDP的SOCKET程序
- JavaSE_基于TCP协议的Socket实现的控制台聊天程序
- 基于UDP的聊天程序-JAVA
- 基于UDP 的QQ聊天程序一
- 基于UDP 的QQ聊天程序 二
- 基于UDP的简单聊天程序
- 皓哥和你一起学unix网络编程(2)
- Oracle BAM Pie图无法自定义颜色
- Python in Xcode4
- hdu 水题十道(2) 1210 1065 1249 1273 1290 1046 1049[Unfinished]
- struts标签库: logic:iterate struts-config.xml
- VC++ 基于UDP的控制台聊天程序socket通信
- 四则运算表达式求值程序(C语言版)
- Create Your Own Search Engine with Python 用python创建你自己的搜索引擎(完)
- GDB调试技术(一)
- 浅谈java异常
- Hibernate 初步
- java异常小结
- 请问怎么样才可以赚积分啊。等下载用
- 在指定的窗口播放Mplayer