代码开源(4)——Windows 中CS简单实现
来源:互联网 发布:国学书院知乎 编辑:程序博客网 时间:2024/05/07 05:18
下面两段代码介绍Windows中,TCP/IP的建立过程,只是一个最简单的实现。VS2008中测试通过。
服务器端:
#include<winsock.h>#include<stdio.h>#pragma comment(lib,"wsock32.lib")int main(){//请求版本WORD wVersionRequested; //Window Socket版本WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 1, 1 ); //高位为副版本,请求1.1版本err = WSAStartup( wVersionRequested, &wsaData );if ( err != 0 ){ return 1; } //找不到合适版本if(LOBYTE( wsaData.wVersion)!= 1 || HIBYTE(wsaData.wVersion) != 1) {WSACleanup();return 1; }//创建套接字socketSOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0); //创建套接字 SOCKADDR_IN addrSrv;addrSrv.sin_family=AF_INET;addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//转换为网络顺序addrSrv.sin_port=htons(5001); //绑定bindif(bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)) < 0){printf("bind failed\n");return 1;}//监听listen listen(sockSrv, 5); SOCKADDR_IN addrClient;while(true){int len=sizeof(SOCKADDR);char sendBuf[100];char recvBuf[100];//用sockConn与客户端通信SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);sprintf(sendBuf,"Welcome %s to seu",inet_ntoa(addrClient.sin_addr)); send(sockConn, sendBuf, strlen(sendBuf) + 1, 0);recv(sockConn, recvBuf, 100, 0);printf("%s\n", recvBuf);closesocket(sockConn);}return 0;}
客户端:
#include<winsock.h>#include<stdio.h>#pragma comment(lib,"wsock32.lib")int main(){//请求版本WORD wVersionRequested; //Window Socket版本WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 1, 1 ); //高位为副版本,请求1.1版本err = WSAStartup( wVersionRequested, &wsaData );if ( err != 0 ){ return 1; } //找不到合适版本if(LOBYTE( wsaData.wVersion)!= 1 || HIBYTE(wsaData.wVersion) != 1) {WSACleanup(); return 1; }char ip[] = "127.0.0.1";int port = 5001;SOCKET sockClient = socket(AF_INET,SOCK_STREAM,0); //创建套接字 SOCKADDR_IN addrSrv;addrSrv.sin_family = AF_INET; //使用因特网addrSrv.sin_addr.S_un.S_addr = inet_addr(ip); //服务器IP地址addrSrv.sin_port = htons(port); //服务器端口if(connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)) < 0){printf("connect failed\n");return 1;}char recvBuf[100];recv(sockClient,recvBuf,100,0); //接受数据printf("%s\n",recvBuf); //打印收到的数据send(sockClient, "hello seu!", strlen("hello seu!") + 1, 0); //发送数据Sleep(5000);closesocket(sockClient); //关闭套接字 WSACleanup();return 0;}
- 代码开源(4)——Windows 中CS简单实现
- 代码开源(4)——Windows 中CS简单实现
- 代码开源(3)——UNIX中CS简单实现
- 代码开源(3)——UNIX中CS简单实现
- 在C#代码(后台aspx.cs)页面中实现js的alert功能
- 代码规范(CS)
- cs中调用js代码
- 在后台(cs)代码中更改页面元素样式
- 在aspx.cs中使用windows.open打开另一个页面,并且实现参数传递
- 在aspx.cs中使用windows.open打开另一个页面,并且实现参数传递
- aspx.cs中使用windows.open打开另一个页面,实现参数传递
- C#邮件发送代码实现(MailSender.cs)
- UI分离的数据绑定 完全在cs代码中实现
- jsp中实现倒计时简单代码
- windows网络编程(八)——重叠I/O+多线程实现简单的聊天(windows服务器端 windows客户端)
- windows网络编程(九)——IOCP+多线程实现简单的聊天(windows服务器端 windows客户端)
- 基于visual c++之windows核心编程代码分析(59)实现网络简单代理编程
- Windows下一个简单的日志系统的C代码实现
- Getting_Started_With_TestComplete8.pdf
- POJ 1019 Number Sequence
- tire树~!
- 获取 Iframe内的元素对象
- winform 中webBrowser 控件显示网页的一部分
- 代码开源(4)——Windows 中CS简单实现
- 0 绪论
- C++ Primer Plus学习:第三章 处理数据(1)
- mText.getTextSize返回值是以像素(px)为单位的
- java 命令
- 1.1集合和元素
- asp.net后台操作javascript:confirm返回值
- Ubuntu快捷键
- VirtualBox的Shared folder功能出现broken shared folder错误