[color=cyan]1、socket伺服器端:[/color]
下面是孫鑫vc詳解裡面的伺服器端的例子:
#include
#include
void main()
if (lobyte(wsadata.wversion)!=1||
hibyte(wsadata.wversion)!=1)
//建立監聽的套接字
socket socksrv=socket(af_inet,sock_stream,0);
sockaddr_in addrsrv;
addrsrv.sin_addr.s_un.s_addr=htonl(inaddr_any);//把u_long的主機位元組順序轉換為tcp/ip網路位元組順序
addrsrv.sin_family=af_inet;
addrsrv.sin_port=htons(6000);
//繫結套接字
bind(socksrv,(sockaddr*)&addrsrv,sizeof(sockaddr));
//將套接字設定為監聽模式,準備接受使用者請求
listen(socksrv,5);
sockaddr_in addrclient;
int len=sizeof(sockaddr);
printf("%s\n","welcome,the serve is started...");
while (1) }
[color=red]注意:需要包含標頭檔案,並且在工程設定的link裡面加上ws32_2.dll[/color]
[color=cyan]如果在vc中還有乙個簡單的載入套接字的方法:[/color]
if (!afxsocketinit())
這個不需要包含上面注裡面的標頭檔案和ws2_32.lib庫就可以實現載入套接字。
[color=cyan]2、socket客戶端:[/color]
socket客戶端同樣需要先載入套接字,然後建立套接字,不過之後不用繫結和監聽了,而是直接連線伺服器,傳送相關請求。
同樣貼出孫鑫vc詳解裡面的客戶端的例子:(不是我偷懶,是人家實在寫的太好,無法超越 :wink: )
#include
#include
void main()
if (lobyte(wsadata.wversion)!=1||
hibyte(wsadata.wversion)!=1)
//建立套接字
socket sockclient=socket(af_inet,sock_stream,0);
sockaddr_in addrsrv;
addrsrv.sin_addr.s_un.s_addr=inet_addr("127.0.0.1");//把u_long的主機位元組順序轉換為tcp/ip網路位元組順序
addrsrv.sin_family=af_inet;
addrsrv.sin_port=htons(6000);
//向伺服器傳送請求
connect(sockclient,(sockaddr*)&addrsrv,sizeof(sockaddr));
//接受資料
char recbuf[100];
recv(sockclient,recbuf,100,0);
printf("%s\n",recbuf);
//傳送資料
send(sockclient,"this is 扈修非",strlen("this is 扈修非")+1,0);
//關閉套接字
closesocket(sockclient);
wsacleanup();
}
[color=red]需要載入的標頭檔案和庫同上[/color]
socket程式設計
一直以為serversocket accept之後客戶端才能發資訊,實驗後得出如下結論 1 serversocket沒有accept時,client是可以傳送資訊到server端的。2 serversocket accept之後,正在處理訊息時,client也是可以傳送資訊到server端。如果se...
Socket程式設計
對tcp ip udp socket程式設計這些詞你不會很陌生吧?隨著網路技術的發展,這些詞充斥著我們的耳朵。那麼我想問 1.什麼是tcp ip udp?2.socket在 呢?3.socket是什麼呢?4.你會使用它們嗎?什麼是tcp ip udp?tcp ip transmission cont...
socket程式設計
建立socket 建立乙個 socket,它可用於在基於 tcp ip 的網路 如 internet 上通訊。socket s new socket addressfamily.internetwork,sockettype.stream,protocoltype.tcp 若要使用 udp 而不是 ...