socket 的一些麻煩

2021-06-19 12:00:13 字數 1377 閱讀 2161

在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...