c++通信网络课程设计
时间: 2023-12-22 12:28:10 浏览: 33
以下是一个基于WinSock的C++ socket通信客户端和服务器端的简单示例,可以作为课程设计的参考:
服务器端代码:
```c++
#include <iostream>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib") // 链接ws2_32.lib库文件
using namespace std;
int main() {
// 初始化WinSock
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
// 创建socket
SOCKET serverSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
// 绑定IP和端口
sockaddr_in serverAddr;
serverAddr.sin_family = AF_INET;
serverAddr.sin_addr.s_addr = htonl(INADDR_ANY);
serverAddr.sin_port = htons(12345);
bind(serverSocket, (SOCKADDR*)&serverAddr, sizeof(serverAddr));
// 监听端口
listen(serverSocket, 10);
// 接受客户端连接
SOCKET clientSocket;
sockaddr_in clientAddr;
int clientAddrLen = sizeof(clientAddr);
clientSocket = accept(serverSocket, (SOCKADDR*)&clientAddr, &clientAddrLen);
// 接收客户端消息
char recvBuf[1024];
int recvLen = recv(clientSocket, recvBuf, sizeof(recvBuf), 0);
cout << "Received message: " << recvBuf << endl;
// 发送消息给客户端
char sendBuf[] = "Hello, client!";
send(clientSocket, sendBuf, sizeof(sendBuf), 0);
// 关闭socket
closesocket(clientSocket);
closesocket(serverSocket);
// 清理WinSock
WSACleanup();
return 0;
}
```
客户端代码:
```c++
#include <iostream>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib") // 链接ws2_32.lib库文件
using namespace std;
int main() {
// 初始化WinSock
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
// 创建socket
SOCKET clientSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
// 连接服务器
sockaddr_in serverAddr;
serverAddr.sin_family = AF_INET;
serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
serverAddr.sin_port = htons(12345);
connect(clientSocket, (SOCKADDR*)&serverAddr, sizeof(serverAddr));
// 发送消息给服务器
char sendBuf[] = "Hello, server!";
send(clientSocket, sendBuf, sizeof(sendBuf), 0);
// 接收服务器消息
char recvBuf[1024];
int recvLen = recv(clientSocket, recvBuf, sizeof(recvBuf), 0);
cout << "Received message: " << recvBuf << endl;
// 关闭socket
closesocket(clientSocket);
// 清理WinSock
WSACleanup();
return 0;
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)