控制台下實現多執行緒socket通訊,服務端為每個請求的客戶端建立乙個執行緒,進行通訊。(其實這些msdn裡都有)
一.基本流程如下:
定義變數->獲得winsock版本->載入winsock庫->初始化->建立套接字->設定套接字選項->關閉套接字->解除安裝winsock庫->釋放資源
二.客戶端 建立過程(下篇是服務端)
1 初始化wsa
2 建立乙個socket
3 連線到伺服器
4 傳送和接受資料
5 斷開連線
三.注意winsock下程式設計有用到兩個庫
winsock2.h
ws2_32.lib
#include #include #include #include using namespace std;
#pragma comment(lib,"ws2_32.lib")
int main(int argc, char* argv)
if( lobyte( wsadata.wversion) != 1 || hibyte( wsadata.wversion) !=1 )
// (2)建立套接字
socket sockclient = socket( af_inet,sock_stream, 0 );
if (sockclient == invalid_socket)
sockaddr_in addrsrv;
addrsrv.sin_addr.s_un.s_addr = inet_addr("127.0.0.1");
addrsrv.sin_family = af_inet;
addrsrv.sin_port = htons(51555);
// (3)向伺服器發出連線請求
iresult = connect(sockclient, (sockaddr*)&addrsrv, sizeof(sockaddr));
if (iresult == socket_error)
// (4)傳送接收資料
string strsend;
while(cin >> strsend)
; if (recv( sockclient, recvbuf, 100, 0) != socket_error)
}// (5)結束處理
iresult = closesocket(sockclient);
if (iresult == socket_error)
wsacleanup();
return 0;
}
socket多執行緒通訊
程序與執行緒的區別 程序 在作業系統構成單獨執行流的單位。執行緒 在程序構成單獨執行流的單位 執行緒的建立和執行流程 include int pthread create pthread t restrict thread,const pthread attr t restrict attr,voi...
vc 多執行緒程式設計 SOCKET通訊
vc 多執行緒程式設計 socket通訊 include stdafx.h include 伺服器端程式 dword winapi answerthread lpvoid lparam int main sockaddr in service service.sin family af inet s...
基於TCP的Socket通訊 多執行緒
中引用的頭函式 include include include pragma comment lib,ws2 32.lib 伺服器端 1.初始化socket環境,建立套接字 wsadata wsadata word wversionrequested makeword 2,2 將兩個byte型合成乙...