c++socket代码
来源:互联网 发布:kitti数据集如何使用 编辑:程序博客网 时间:2024/05/01 22:12
开发环境:
window7
VisualStudio2015
服务端代码:server.cpp
#include <stdio.h>#include <winsock2.h>#pragma comment (lib, "ws2_32.lib") //加载 ws2_32.dll#include <iostream>using namespace std;//线程#include <cstdlib>#include <windows.h>//声明DWORD WINAPI Fun1Proc(LPVOID lpParameter);int main(){printf("start server\n");/*** 可参考文档 http://c.biancheng.net/cpp/html/3031.html **///初始化 DLLWSADATA wsaData;WSAStartup(MAKEWORD(2, 2), &wsaData);//创建套接字SOCKET servSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);//绑定套接字sockaddr_in sockAddr;memset(&sockAddr, 0, sizeof(sockAddr)); //每个字节都用0填充sockAddr.sin_family = PF_INET; //使用IPv4地址sockAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); //具体的IP地址sockAddr.sin_port = htons(1234); //端口bind(servSock, (SOCKADDR*)&sockAddr, sizeof(SOCKADDR));//进入监听状态listen(servSock, 20);//接收客户端请求//SOCKADDR clntAddr;SOCKADDR_IN clntAddr;int nSize = sizeof(SOCKADDR);while (true){SOCKET clntSock = accept(servSock, (SOCKADDR*)&clntAddr, &nSize);//告诉用户谁上线char szIpAddress[16];strcpy_s(szIpAddress, sizeof(szIpAddress), inet_ntoa(clntAddr.sin_addr));//cout << szIpAddress << "上线了" << endl;HANDLE hThread_1 = CreateThread(NULL, 0, Fun1Proc, (LPVOID)&clntSock, 0, NULL);CloseHandle(hThread_1);}closesocket(servSock);//终止 DLL 的使用WSACleanup();printf("end server\n");system("pause");return 0;}DWORD WINAPI Fun1Proc(LPVOID lpParameter ){SOCKET clntSock = *(SOCKET*)lpParameter;//接收服务器传回的数据char szBuffer[MAXBYTE] = { 0 };recv(clntSock, szBuffer, MAXBYTE, NULL);//输出接收到的数据//printf("Message form client: %s\n", szBuffer);cout << "Message form client: " << szBuffer << endl;//strcat(szBuffer, "发送出去");//向客户端发送数据char *str = szBuffer;send(clntSock, str, strlen(str) + sizeof(char), NULL);//关闭套接字//closesocket(clntSock);return 0;}
#include <stdio.h>#include <stdlib.h>#include <WinSock2.h>#pragma comment(lib, "ws2_32.lib") //加载 ws2_32.dll#include <iostream>using namespace std;int main() {//初始化DLLWSADATA wsaData;WSAStartup(MAKEWORD(2, 2), &wsaData);SOCKET sock = NULL;while (true){//创建套接字sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);//向服务器发起请求sockaddr_in sockAddr;memset(&sockAddr, 0, sizeof(sockAddr)); //每个字节都用0填充sockAddr.sin_family = PF_INET;sockAddr.sin_addr.s_addr = inet_addr("127.0.0.1");sockAddr.sin_port = htons(1234);connect(sock, (SOCKADDR*)&sockAddr, sizeof(SOCKADDR)); cout << "Please input :" ;char sendString[500];cin >> sendString ; strcat(sendString, "\n");//向服务端端发送数据char *sendStr = sendString;send(sock, sendStr, strlen(sendStr) + sizeof(char), NULL);cout << sendString << endl;//接收服务器传回的数据char szBuffer[MAXBYTE] = { 0 };recv(sock, szBuffer, MAXBYTE, NULL);//输出接收到的数据//printf("Message form server: %s\n", szBuffer);cout << "Message form server:" << szBuffer << endl;//关闭套接字closesocket(sock);}//终止使用 DLLWSACleanup();system("pause");return 0;}
源代码下载地址:http://download.csdn.net/detail/baidu_19473529/9748318
写的不好的地方,万忘指正。 0 0
- socket编程-c代码
- c++socket代码
- C#Socket 异步代码示例
- c#(Socket)异步套接字代码示例
- c#(Socket)异步套接字代码示例
- c#(Socket)异步套接字代码示例
- socket编程(udp tcp)代码备忘 C++/C
- socket编程(udp tcp)代码备忘 C++/C
- socket编程(udp tcp)代码备忘 C++/C
- socket编程(udp tcp)代码备忘 C++/C
- 网络同步校时客户端代码(RFC868/C++/WIN32/SOCKET)
- 使用C/C++实现Socket聊天程序(代码+实验报告)
- Socket 异步 长连接 多点 服务端代码(C#)
- linux c socket client与server实例代码
- android通过jni调用C代码socket出错问题
- Socket原理及C/S简单代码实现
- socket消息流程介绍及其C代码实现
- android通过jni调用C代码socket出错问题
- ART模式和Dalvik模式的区别
- 使用Nexus搭建Maven私服
- Splunk架构学习笔记
- Mac 关于VSCode调试和使用的问题
- kafka安装
- c++socket代码
- 成为Java GC专家系列(二)——监控Java垃圾回收
- 字典树模板
- ORACLE监听日志文件小问题引发的数据库大血案
- 一条语句实现:乘法表打印
- java算法-斐波那契数列四吧(公式递推,不定方程求解)
- 成为Java GC专家系列(一) ——Java垃圾回收机制
- 醉美~~三河中学
- Android App优化之电池省着用