在vs2010 上面倒是可以編譯的源**,但是換到2008上,編譯就出現了如下錯誤資訊。
「sockaddr_in」: 未宣告的識別符號
包含的標頭檔案是windows.h
最後還是有了結果,就是 在 sockaddr_in 的前頭 加上 struct.
還有錯誤
error c2275: 「socket」: 將此型別用作表示式非法
將其放到函式的前頭,即wsastartup(makeword(2,2),&ws); 之前就可以了。
幾乎把所有變數宣告都放到了最前端,不過一般的情況下似乎不需要這個樣子的。中間宣告變數不可以麼?有人說可以,有人說不可以。
#include
#include
#include
#include
#pragma comment(lib,"ws2_32.lib")
int main()
slisten = socket(af_inet,sock_stream,0);
if(slisten==invalid_socket)
servaddr.sin_family = af_inet;
servaddr.sin_addr.s_addr = inaddr_any;
servaddr.sin_port = htons(8000);
ret = bind(slisten,(struct sockaddr*)&servaddr,sizeof(servaddr));
if(ret==socket_error)
return -1;
ret = listen(slisten,5);
if(ret == socket_error)
return -1;
fd_zero(&allsocketset);
fd_zero(&readset);
fd_zero(&writeset);
readset = allsocketset;
writeset = allsocketset;
fd_set(slisten,&allsocketset);
while(1)
else
fd_clr(s,&allsocketset);
printf("%s",bufrecv);
bufrecv[0]='\0';
// memset(bufsend,0,100);
// memcpy(bufsend,&sys,sizeof(systemtime));
// send(s,bufsend,sizeof(bufsend),0);}}
}}}}
socket 的一些引數
sock raw 注意一定要在root下使用 原始套接字程式設計可以接收到本機網絡卡上的資料幀或者資料報,對與監聽網路的流量和分析是很有作用的.一共可以有3種方式建立這種socket 1.socket af inet,sock raw,ipproto tcp ipproto udp ipproto ...
關於Socket的一些概念
對於 tcp ip 我們還知道 tcp和 udp,前者可以保證資料的正確和可靠性,後者則允許資料丟失。最後,我們還知道,在建立連線前,必須知道對方的 ip位址和埠號。除此,普通的程式設計師就不會知道太多了,很多時候這些知識已經夠用了。最多,寫服務程式的時候,會使用多執行緒來處理併發訪問。我們還知道如...
socket的一些基本結構
socket的一些基本結構 一 socket的一些基本結構 struct in addr struct sockaddr in 二 socket的一些輔助函式 1 位元組序轉換函式 htons host to network byte order short unsigned integer hto...