TCP
2016-07-05 19:14
381 查看
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 = 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; }
相关文章推荐
- Tinyhttpd-源码阅读笔记
- 分析TCP/IP协议栈代码之TCP
- Android23以后会出现没有httpclient包的存在
- 分析TCP/IP协议栈代码之UDP
- Fiddler 高级用法:Fiddler Script 与 HTTP 断点调试
- 洛谷 P1262 间谍网络
- okhttp教程——起步篇
- Http基础
- Android Volley & Retrofit2 & Http基础知识 笔记
- UNIX网络编程——TCP的连接建立与终止、基本TCP客户/服务器套接字函数
- JAVA发送http get/post请求,调用http接口、方法
- header中Content-Disposition的作用
- Tcp/Ip 协议分析
- HTTP协议(二):header标头说明
- osi七层模型和tcp/ip四层模型每层作用和协议
- Unity5.1 新的网络引擎UNET(十五) Networking 引用--上
- 【http】get/post 获取请求参数
- 网络编程笔记
- CNN与常用框架
- OkHttp的基本使用——替代Apache HttpClient