一、伺服器端程式**
#include
#include
#pragma comment(lib, "ws2_32.lib")//或者在專案屬性的聯結器的輸入的附加依賴項中新增ws2_32.lib
#define port 5000
void main()
slisten=socket(af_inet,sock_stream,0);//建立套接字
if (slisten==invalid_socket)
//建立伺服器位址
serv.sin_family=af_inet;
serv.sin_port=htons(port);//把乙個雙位元組主機位元組順序的資料轉換為網路位元組順序
serv.sin_addr.s_addr=htonl(inaddr_any);//把四位元組主機位元組順序轉換為網路位元組順序,inaddr_any為系統指定的ip位址
//繫結
if (bind(slisten,(lpsockaddr)&serv,sizeof(serv))==socket_error)
//進入監聽狀態
if (listen(slisten,5)==socket_error)//正在等待連線的最大個數是5
ilen=sizeof(client);//初始化客戶位址長度
//進入迴圈等待客戶端連線請求
while(1)
printf("accepted client ip:[%s],port:[%d]\n",inet_ntoa(client.sin_addr),ntohs(client.sin_port));
//給客戶端傳送資料
isend=send(saccept,buf,sizeof(buf),0);
if (isend==socket_error)
else if (isend==0)
else
closesocket(saccept);
}closesocket(slisten);
wsacleanup();
}二、客戶端**
#pragma comment(lib,"ws2_32.lib")
#include
#include
#define port 5000
#define buffer 1024
void main(int argc, char* argv)
//需要連線的伺服器位址資訊
serv.sin_family=af_inet;//需要連線的伺服器的位址資訊
serv.sin_addr.s_addr=inet_addr(argv[1]);//將命令列的ip位址轉換為二進位制表示的網路位元組順序ip位址
serv.sin_port=htons(port);
client=socket(af_inet,sock_stream,0);//建立客戶端流套接字
if (client==invalid_socket)
//請求與伺服器建立tcp連線
if (connect(client,(struct sockaddr*)&serv,sizeof(serv))==invalid_socket)
else
else if (ilen==socket_error)
printf("recv() data from server:%s\n",buf);
}closesocket(client);
wsacleanup();
printf("press any key to continue");
while(1);}
WinSock之簡單的TCP通訊程式設計
編寫客戶端與服務端程式,客戶端與服務端建立tcp連線後 1 服務端向客戶端傳送一條內容為 connect succeed.please send a message to me.然後等待接收客戶端傳送來的一條資訊,收到後顯示該資訊並關閉連線,繼續等待其他客戶的鏈結請求。2 客戶端在與伺服器的連線寄建...
winSock 實現檔案的傳輸
簡單的c s架構的檔案傳輸,使用的是阻塞模式,下次嘗試非阻塞的和非同步模式的。ps.最近在看客戶端 include stdafx.h include pragma comment lib,ws2 32.lib int main socket hsocket hsocket socket af ine...
程式設計實現基於tcp的socket程式設計
server端 public class server socket.shutdowninput 關閉輸入流 4 獲取輸出流,響應客戶端的請求 outputstream os socket.getoutputstream printwriter pw new printwriter os 包裝為列印...