windows套接字程式設計
1、設定庫alt+f7 ->「配置屬性」-> 「聯結器」 -> 「輸入」 -> 「附加依賴項」 -> 「ws2_32.lib」
2、標頭檔案:#include
3、winsock的初始化
- 首先必須呼叫wsastartup函式,設定程式中用到的winsock版本,並初始化響應版本的庫。
-int wsastartup(word wversionrequested, lpwsadata lpwsdata);
- 成功時返回0, 失敗時返回非零的錯誤**值。
- wversionrequested 是winsock的版本資訊。
- lpwsdata wsadata結構體變數的位址值
- 借助makeword巨集函式構建word型版本資訊,
- 如:makeword(1, 2);表示主版本為1,副版本為2,返回0x0201
4、winsock的登出
-int wsaclenup();
- 成功時返回0, 失敗時返回socket_error。
- 呼叫該函式時,winsock相關庫歸還windows作業系統,無法再呼叫winsock相關函式 //
#include "stdafx.h"
#include
#include
void efforhandling(char *message);
int main(int argc, char* argv)
if (wsastartup(makeword(2, 2), &wsadata) != 0)
hservsock = socket(pf_inet, sock_stream, 0);
if (hservsock == invalid_socket)
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = af_inet;
servaddr.sin_addr.s_addr = htonl(inaddr_any);
servaddr.sin_port = htons(atoi(argv[1]));
if (bind(hservsock, (sockaddr*)&servaddr, sizeof(servaddr)) == socket_error)
if (listen(hservsock, 5) == socket_error)
szclntaddr = sizeof(clntaddr);
hclientsock = accept(hservsock, (sockaddr*)&clntaddr, &szclntaddr);
if (hclientsock == invalid_socket)
send(hclientsock, message, sizeof(message), 0);
closesocket(hclientsock);
closesocket(hservsock);
wsacleanup();
system("pause");
return0;}
void efforhandling(char *message)
//#include "stdafx.h"
#include
#include
void efforhandling(char *message);
int main(int argc, char* argv)
if (wsastartup(makeword(2, 2), &wsadata) != 0)
hsocket = socket(pf_inet, sock_stream, 0);
if (hsocket == invalid_socket)
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = af_inet;
servaddr.sin_addr.s_addr = inet_addr(argv[1]);
servaddr.sin_port = htons(atoi(argv[2]));
if (connect(hsocket, (sockaddr*)&servaddr, sizeof(servaddr)) == socket_error)
strlen = recv(hsocket, message, sizeof(message)-1, 0);
if (strlen == -1)
printf("message from server: %s \n", message);
closesocket(hsocket);
wsacleanup();
system("pause");
return0;}
void efforhandling(char *message)
linux c 筆記 網路程式設計(二)
套接字 struct sockaddr結構定義了一種通用的套接字位址,他在linux socket.h中定義如下 struct sockaddr 現在一般使用下面這個sockaddr in結構 用來設定 獲取位址資訊 struct sockaddr in 其中,in addr這個資料結構 struc...
window下python網路程式設計問題
最近在學習 在編寫非同步python套接字伺服器應用程式時遇到問題,顯示如下 發現 os.fork 呼叫與 module object has no attribute fork 即os塊沒有fork函式,os是python內建的塊怎麼會沒有fork函式?然後發現問題是window環境下沒有fork...
基於TCP的網路程式設計
伺服器端程式 include include pragma comment lib,ws2 32.lib int main if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1 printf version d.d n lobyte wsada...