基于TCP的网络通信程序演示[命令行程序]
来源:互联网 发布:mac外置触摸板 编辑:程序博客网 时间:2024/05/22 13:13
本程序仅仅是为了演示基于TCP协议的网络通信程序的写法,采用阻塞模式,代码简单:
服务器端代码:
#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_STREAM,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));listen(sockSrv,5);SOCKADDR_IN addrClient;int len=sizeof(SOCKADDR);while(1){SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);char sendBuf[100];sprintf(sendBuf,"Welcom %s to http://blog.hulin0229.com", inet_ntoa(addrClient.sin_addr));send(sockConn,sendBuf,strlen(sendBuf)+1,0); char recvBuf[100];recv(sockConn,recvBuf,strlen(recvBuf),0);printf("%s/n",recvBuf);closesocket(sockConn);}}
『注意』本程序使用了动态连接库文件Ws2_32.lib,需要在工程属性里添加对Ws2_32.lib的连接。本程序用VC2005编译,添加方法是:在project/Configuration properties/Linker/Input下的Additional Dependencies 项里写如Ws2_32.lib
客户端代码:
#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_STREAM,0);SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1"); //127.0.0.1是一个回路地址。addrSrv.sin_family=AF_INET;addrSrv.sin_port=htons(6000);connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));char recvBuf[100];recv(sockClient,recvBuf,strlen(recvBuf),0);printf("%s/n",recvBuf);send(sockClient,"我是胡林",strlen("我是胡林")+1,0);closesocket(sockClient);WSACleanup();}
同服务器端一样,客户端程序也使用了Ws2_32.lib动态连接库,需要在工程属性里添加对Ws2_32.lib的连接。
- 基于TCP的网络通信程序演示[命令行程序]
- WSAEventSelect模型基于TCP协议的控制台网络通信程序
- 基于TCP网络通信的自动升级程序源码分析-启动升级文件下载程序
- 基于tcp的socket通信程序
- 简单的网络通信程序 TCP
- TCP网络通信程序的流程
- 基于TCP协议的网络程序
- 基于TCP协议的网络程序
- 基于TCP协议的网络程序
- 基于TCP协议的网络程序
- 基于TCP协议的网络程序
- 基于TCP的网络聊天程序
- 基于TCP协议的网络程序
- 基于TCP/UDP的网络聊天程序
- 基于UDP的多线程网络通信程序
- 基于TCP网络通信的自动升级程序源码分析--生成升级文件相关的配置文件
- UNIX系统下的基于TCP协议的网络通信程序
- 基于TCP网络通信的自动升级程序源码分析-客户端连接服务器
- 测试手机对J2ME支持情况
- [WCF 学习笔记] 9. 端点绑定
- 使用window.createPopup();做的简单下拉菜单
- 韩老师整理的对JavaScript的理解
- 使用J2ME发送手机短信息
- 基于TCP的网络通信程序演示[命令行程序]
- 学习J2ME编程需要掌握的七种技术
- J2ME学习
- [WCF 学习笔记] 10. 行为控制
- MIDP2.0手机上的手电筒程序(附代码)
- [WCF 学习笔记] 11. 配置文件
- j2me 扑克发牌算法实现
- ORACLE多表查询优化
- J2ME贪吃蛇源代码——200行左右,包含详细注释