windows sockets 的版本:
標頭檔案:winsock.h
庫檔案:wsock32.lib
動態困:winsock.dll
標頭檔案:winsock2.h
庫檔案:ws2_32.lib
動態困:ws2_32.dll
服務端:
wsadata wsd; //wsadata變數
socket sserver; //伺服器套接字
socket sclient; //客戶端套接字
sockaddr_in addrserv;; //伺服器位址
char buf[ buf_size]; //接收資料緩衝區
int retval; //返回值
//初始化套接字動態庫
if (wsastartup(makeword(2,2),&wsd) != 0)
//建立套接字
sserver = socket(af_inet,sock_stream,ipproto_tcp);
if (invalid_socket == sserver)
//下一步 繫結套接字
// addrserv.sin_family = af_inet;
addrserv.sin_port = htons(4999);
addrserv.sin_addr.s_addr = inaddr_any;
//繫結套接字
retval = bind(sserver,(lpsockaddr)&addrserv,sizeof(sockaddr_in));
if (socket_error == retval)
//開始監聽
retval = listen(sserver,1);
if (socket_error == retval)
//設定伺服器為監聽狀態,呼叫accept()函式等待客戶端的連線。該函式處於阻塞狀態,直到接受
//了乙個客戶端請求、當該函式返回的時候,新建乙個套接字,同時返回該客戶端的位址。如果呼叫
//失敗,則關閉
sockaddr_in addrclient;
int addrclientlen = sizeof(addrclient);
sclient = accept(sserver,(sockaddr far*)&addrclient, &addrclientlen);
if (invalid_socket == sclient)
//接受並顯示資料
zeromemory(buf,buf_size);
retval = recv(sclient,buf,buf_size,0);
if (socket_error == retval)
cstring str;
str.format("%s",buf);
// afxmessagebox(buf);
m_recv2.setwindowtext(str);
closesocket(sserver); //關閉套接字
closesocket(sclient); //關閉套接字
wsacleanup(); //釋放套接字資源;
客戶端:
wsadata wsd; //wsadata變數
socket shost; //伺服器套接字
sockaddr_in servaddr; //伺服器位址
char buf[buf_szie]; //接收資料緩衝區
int retval; //返回值
//初始化套結字動態庫
if (wsastartup(makeword(2,2), &wsd) != 0)
//建立套接字
shost = socket(af_inet, sock_stream, ipproto_tcp);
if(invalid_socket == shost)
//設定伺服器位址
servaddr.sin_family =af_inet;
servaddr.sin_addr.s_addr = inet_addr("127.0.0.1");
servaddr.sin_port = htons((short)4999);
int nservaddlen = sizeof(servaddr);
//連線伺服器
retval=connect(shost,(lpsockaddr)&servaddr, sizeof(servaddr));
if(socket_error == retval)
//向伺服器傳送資料
zeromemory(buf, buf_szie);
strcpy(buf, "mytcp");
retval = send(shost, buf, strlen(buf), 0);
if (socket_error == retval)
//退出
closesocket(shost); //關閉套接字
wsacleanup(); //釋放套接字資源
return 0;
Windows網路程式設計
1.先總結一些會用到的知識 中計算機都分配乙個位址,該位址是乙個 32位的數值表示 客戶端和伺服器通訊的時候需要指定乙個 ip位址 和埠。ip位址 一般是用 internet標準 點分表示法 像a.b.c.d 一樣指定 的,每乙個字母代表乙個位元組的數字 十進位制 八進位制 或十六進製制 從左到右分...
windows網路程式設計
winsock是windows系統下利用socket套接字進行網路程式設計的相關函式,是windows下的網路程式設計介面。winsock在常見的windows平台上有兩個主要的版本,即winsock1和winsock2。編寫與winsock1相容的程式你需要引用標頭檔案winsock.h,如果編寫...
windows網路程式設計
include include include 要使用winsock api,就要包含ws2 32.lib這個庫 pragma comment lib,ws2 32.lib int main int argc,char ar 為埠號賦值 short port if port atoi ar 1 0 ...