windows下socket开发tcp程序 简单例子
来源:互联网 发布:程序员离职证明模板 编辑:程序博客网 时间:2024/06/06 09:44
Windows下的简单tcp例子。
代码均在VC6.0下调试过。
服务器代码:
//TCP server//listen port 9102//receive string and display it//Visual C++ 6.0#include <stdio.h>#include <winsock2.h>#pragma comment(lib,"ws2_32.lib")#define BUFLEN 1024int main(){SOCKET serversoc;SOCKET clientsoc;SOCKADDR_IN serveraddr;SOCKADDR_IN clientaddr;char buf[BUFLEN];int len; WSADATA wsa;WSAStartup(MAKEWORD(1,1),&wsa);//initial Ws2_32.dll by a processif((serversoc = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) <= 0)//create a tcp socket{printf("Create socket fail!\n");return -1;}serveraddr.sin_family = AF_INET;serveraddr.sin_port = htons(9102);serveraddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);if(bind(serversoc, (SOCKADDR *)&serveraddr, sizeof(serveraddr)) != 0){printf("Bind fail!\n");return -1;}//start listen, maximum length of the queue of pending connections is 1printf("Start listen...\n");if(listen(serversoc, 1) != 0){printf("Listen fail!\n");return -1;}len = sizeof(SOCKADDR_IN);//waiting for connectingif((clientsoc = accept(serversoc, (SOCKADDR *)&clientaddr, &len))<=0){printf("Accept fail!\n");return -1;}printf("Connected\n");while(1){//waiting for data receiveif(recv(clientsoc, buf, BUFLEN, 0) <= 0){//some error occurprintf("Close connection\n");closesocket(clientsoc);break;}printf("%s\n",buf);}WSACleanup(); //clean up Ws2_32.dll return 0;}
客户端代码:
//TCP client//client send string to server//Visual C++ 6.0#include <stdio.h>#include <winsock2.h>#pragma comment(lib,"ws2_32.lib")int main(){SOCKET soc;SOCKADDR_IN serveraddr;SOCKADDR_IN clientaddr;unsigned char buf[1024]; WSADATA wsa;WSAStartup(MAKEWORD(1,1),&wsa);//initial Ws2_32.dll by a processif((soc = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) <= 0)//create a tcp socket{printf("Create socket fail!\n");return -1;}serveraddr.sin_family = AF_INET;serveraddr.sin_port = htons(9102);serveraddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");//connect to serverprintf("Try to connect...\n");if(connect(soc, (SOCKADDR *)&serveraddr, sizeof(serveraddr)) != 0){printf("Connect fail!\n");return -1;}printf("Connected\n");while(1){scanf("%s", buf);//send to serverif(send(soc, buf, strlen(buf)+1, 0)<=0){printf("Error!\n");}}WSACleanup(); //clean up Ws2_32.dll return 0;}
- windows下socket开发tcp程序 简单例子
- windows下socket开发tcp程序 简单例子
- Linux下socket TCP的简单例子
- Linux下的TCP Socket简单例子
- Linux下的TCP Socket简单例子
- Linux下socket TCP的简单例子
- Linux下的TCP Socket简单例子
- Linux下的TCP Socket简单例子
- [C++] Windows下的socket编程(这是一个简单的TCP/IP例子)
- [C++] Windows下的socket编程(这是一个简单的TCP/IP例子)
- linux tcp socket简单例子
- windows下socket开发udp程序
- linux下基于TCP简单的socket通信程序
- Linux下两个程序进行socket通信的简单例子
- Linux下两个程序进行socket通信的简单例子
- windows Socket + tcp 简单实例
- Windows Socket 模型简单例子
- socket的TCP通信简单例子
- python访问Hbase
- 如何检测和处理轮廓线 squares demo
- Oracle副总裁Thomas Kyte谈大数据处理和未来的DBA
- BeginPaint和GetDC的区别
- POJ-1455(换位置)(Crazy tea party )
- windows下socket开发tcp程序 简单例子
- Apache commons (Java常用工具包)简介
- 客户端与服务器持续同步解析(轮询,comet,WebSocket)
- 图像处理:基础(模板、卷积运算)
- COM组件如何调试
- 2012-03-29(ASP)(页面跳转+tab菜单+传参)
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别 .
- YUV格式详细解释与FFMPEG的关系
- Java中常用的加密方法(JDK)