TCP
来源:互联网 发布:淘宝客返利网址 编辑:程序博客网 时间:2024/05/29 16:43
server
服务器端
- 初始化
- socket创建一个SOCKET类型的变量,它规定了该套接字是UDP或TCP或其他类型
- bind 给刚刚创建的socket赋值 (具体这个端口)
- listen(socket,5);一般这样写就可以了
- accept();
- 收发数据;
const short SEVEREPORT = 51000;int main(){ WSADATA wsData; WSAStartup(0x0202, &wsData); SOCKET soc = socket(AF_INET, SOCK_STREAM, 0); sockaddr_in sa = { AF_INET,htons(SEVEREPORT) }; int n = bind(soc, (sockaddr*)&sa, sizeof(sa)); if (n<0) { cout << "bind err:" << WSAGetLastError() << endl; return 0; } listen(soc, 5); int nLen = sizeof(sa); SOCKET soca= accept(soc, (sockaddr*)&sa,&nLen); if (soca == INVALID_SOCKET) { cout << "accept err:" << WSAGetLastError() << endl; return 0; } char sBuffer[32] = { 0 }; while ((n=recv(soca, sBuffer, sizeof(sBuffer) - 1, 0))>0) { sBuffer[n] = 0; cout << sBuffer<<endl; } return 0;}
client
客户端
- 初始化
- socket
- connect();将客户端的socket与服务器端进行链接
- 收发数据
const short SEVERPORT = 51000;int main(){ //初始化 WSAData wsaData; WSAStartup(0x0202, &wsaData); SOCKET soc = socket(AF_INET, SOCK_STREAM, 0); if (soc == INVALID_SOCKET) { cout << "socket err:" << WSAGetLastError() << endl; return 0; } //要连接到的服务器 sockaddr_in sato = { AF_INET,htons(51000) }; sato.sin_addr.S_un.S_addr = inet_addr("192.168.198.1"); int n = connect(soc, (sockaddr*)&sato, sizeof(sato)); if (n < 0) { cout << "connect err:" << endl; return 0; } char buf[250] = {0}; while (true) { cout << "请输入要发送的数据:"; cin >> buf; send(soc, buf, strlen(buf), 0); } return 0;}
0 0
- tcp
- TCP
- TCP
- tcp
- tcp
- tcp
- tcp
- tcp
- TCP
- TCP
- TCP
- tcp
- TCP
- tcp
- TCP
- TCP
- tcp
- TCP
- 如何使用JVisualVM进行性能分析
- Docker Volume Plugin 开发及Golang实现
- OpenLayers 2 源码解读(1)
- 第八章 进程控制
- HBase学习之一: 创建hive和hbase关联表
- TCP
- 【中间件3】手把手教你在UbuntuKylin安装配置开源版Tair(请指教)
- HDU 5328 类似尺取
- RTTI运行时类型识别
- OpenLayers 2 源码解读(2) Class.js
- Android dex file cannot exceed 64K错误,使用Mutidex解决Dex超出方法数的限制
- ubuntu firefox 不能启用java
- Linux的sqlite数据库
- ext使用WdatePicker没有图标