简单TCP服务器端和客户端(源代码)
来源:互联网 发布:笔记本风扇控制软件 编辑:程序博客网 时间:2024/05/17 03:23
http://andylin02.iteye.com/blog/460742
简单TCP服务器端和客户端(源代码)
- 博客分类:
- 一亩三分地
SocketWindows
- //客户端:
- #include <iostream>
- #include <stdio.h>
- #include <windows.h>
- using namespace std;
- #pragma comment(lib, "WS2_32.lib")
- int main()
- {
- WSADATA wsaData;
- WORD sockVersion = MAKEWORD(2, 2);
- SOCKET sock = 0;
- if (WSAStartup(sockVersion, &wsaData) != 0)
- {
- cout << "initlization failed!" << endl;
- exit(0);
- }
- sock = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- if (sock == INVALID_SOCKET)
- {
- cout << "failed socket!" << endl;
- return 0;
- }
- sockaddr_in sin;
- sin.sin_family = AF_INET;
- sin.sin_port = htons(4567);
- sin.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
- if (connect(sock, (sockaddr*)&sin, sizeof(sockaddr)) == -1)
- {
- cout << "connect failed!" << endl;
- return 0;
- }
- char buffer[256] = "\0";
- int nRecv = 0;
- nRecv = recv(sock, buffer, 256, 0);
- if (nRecv > 0)
- {
- buffer[nRecv] = '\0';
- cout << "reveive data: " << buffer << endl;
- }
- closesocket(sock);
- WSACleanup();
- }
- //服务端:
- #include <iostream>
- #include <stdio.h>
- #include <windows.h>
- using namespace std;
- #pragma comment(lib, "WS2_32.lib")
- int main()
- {
- WSADATA wsaData;
- WORD sockVersion = MAKEWORD(2, 2);
- SOCKET sListen = 0;
- sockaddr_in sin = {0};
- sockaddr_in remoteAddr = {0};
- char szText[] = "TCP Server Demo";
- int nAddrLen = 0;
- nAddrLen = sizeof(sockaddr_in);
- //fill sin
- sin.sin_port = htons(4567);
- sin.sin_family = AF_INET;
- sin.sin_addr.S_un.S_addr = INADDR_ANY;
- //init wsa
- if (WSAStartup(sockVersion, &wsaData) != 0)
- {
- cout << "initlization failed!" << endl;
- exit(0);
- }
- sListen = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- if (bind(sListen, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR)
- {
- cout << "bind failed!" << endl;
- return 0;
- }
- if (listen(sListen, 2) == SOCKET_ERROR)
- {
- cout << "listen failed!" << endl;
- return 0;
- }
- SOCKET sClient = INADDR_ANY;
- while (true)
- {
- sClient = accept(sListen, (SOCKADDR*)&remoteAddr, &nAddrLen);
- if (sClient == INVALID_SOCKET)
- {
- cout << "accept failed!" << endl;
- continue;
- }
- send(sClient, szText, strlen(szText), 0);
- closesocket(sClient);
- }
- closesocket(sListen);
- WSACleanup();
- }
- //服务端:
- #include <iostream>
- #include <stdio.h>
- #include <windows.h>
- using namespace std;
- #pragma comment(lib, "WS2_32.lib")
- int main()
- {
- WSADATA wsaData;
- WORD sockVersion = MAKEWORD(2, 2);
- SOCKET sListen = 0;
- sockaddr_in sin = {0};
- sockaddr_in remoteAddr = {0};
- char szText[] = "TCP Server Demo";
- int nAddrLen = 0;
- nAddrLen = sizeof(sockaddr_in);
- //fill sin
- sin.sin_port = htons(4567);
- sin.sin_family = AF_INET;
- sin.sin_addr.S_un.S_addr = INADDR_ANY;
- //init wsa
- if (WSAStartup(sockVersion, &wsaData) != 0)
- {
- cout << "initlization failed!" << endl;
- exit(0);
- }
- sListen = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- if (bind(sListen, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR)
- {
- cout << "bind failed!" << endl;
- return 0;
- }
- if (listen(sListen, 2) == SOCKET_ERROR)
- {
- cout << "listen failed!" << endl;
- return 0;
- }
- SOCKET sClient = INADDR_ANY;
- while (true)
- {
- sClient = accept(sListen, (SOCKADDR*)&remoteAddr, &nAddrLen);
- if (sClient == INVALID_SOCKET)
- {
- cout << "accept failed!" << endl;
- continue;
- }
- send(sClient, szText, strlen(szText), 0);
- closesocket(sClient);
- }
- closesocket(sListen);
- WSACleanup();
- }
- 简单TCP服务器端和客户端(源代码)
- 简单TCP服务器端和客户端(源代码)
- 简单TCP服务器端和客户端(源代码)附详细解释
- 简单UDP服务器端和客户端(源代码)
- TCP 客户端和服务器端
- 基于tcp的服务器端和客户端简单版
- Tcp实现客户端和服务器端的简单互访
- TCP服务器端和客户端程序设计
- TCP服务器端和客户端程序设计
- TCP服务器端和客户端程序设计
- TCP服务器端和客户端程序设计
- TCP服务器端和客户端程序设计
- TCP服务器端和客户端程序设计
- TCP服务器端和客户端程序设计
- TCP服务器端和客户端程序设计
- 网络编程Tcp的客户端和服务器端
- tcp写服务器端和客户端程序
- UNIX网络编程----TCP客户端和服务器端
- (转载) Linux汇编语言开发指南(zt)
- 【Android 开发教程】使用Intent传递数据
- 二、表基本操作
- Restrictions用法
- JRTPLIB@Conference DIY视频会议系统 三、JRTPLIB的几个重要类说明(续二)
- 简单TCP服务器端和客户端(源代码)
- 手机时间管家
- 简单UDP服务器端和客户端(源代码)
- Android中通过Intent 调用图片、视频、音频、录音、拍照
- 进程注入的研究与实现(下)
- 基于泛型DAO的Facade设计模式
- 安装libmad、libjpeg库时出现:libpng15.so.15 或 libjpeg : cannot open shared object file的解决方法
- 进程注入的研究与实现(上)
- JRTPLIB@Conference DIY视频会议系统 四、JRTPLIB组成的文字会议测试