建立簡單的套接字

2022-07-25 05:12:12 字數 1792 閱讀 6858

最近發現學計算機的真的要好好做筆記啊。。。前兩天有個學長的聊天工具我是知道沒有初始化套接字,可是一時竟然忘記了載入版本庫的那幾行**,真是汗。。。硬是回來看自己的程式才知道。。。

今晚複習了一下套接字的建立

有服務端和客服端兩個部分

服務端的步驟一般為

1、初始化套接字版本

1

//初始化版本

2wsadata wsadata;

3 word ver=makeword(2,2);4

interr;

5if((err=wsastartup (ver,&wsadata))=!0)6

9if(lobyte(wsadata.wversion)!=2||hibyte(wsadata.wversion)!=2)10

2、建立套接字

3、繫結

4、監聽

5、接收

具體**如下:

1 #include2 #include3 #include4

intmain()514

if(lobyte(wsadata.wversion)!=2||hibyte(wsadata.wversion)!=2)15

1920

socket sever;

21 sever=socket(af_inet,sock_stream,0

);22

sockaddr_in sever_in;

23 sever_in.sin_family=af_inet;

24 sever_in.sin_port=htons(1024

);25 sever_in.sin_addr.s_un.s_addr=htonl(inaddr_any);

26 bind(sever,(sockaddr*)&sever_in,sizeof

(sever_in));

27 listen(sever,2

);28

2930

socket client;

3132

33 client=accept(sever,0,0

);34

if(client==invalid_socket)

3538

39else

40 std::cout<<"

連線成功!

"<41return0;

42 }

客戶端**:

1 #include2 #include3 #include4

intmain()513

if(lobyte(wsdata.wversion)!=2||hibyte(wsdata.wversion)!=2)14

18socket client;

19 client=socket(af_inet,sock_stream ,0

);20

sockaddr_in client_in;

21 client_in.sin_family=af_inet;

22 client_in.sin_port=htons(1024

);23 client_in.sin_addr.s_un.s_addr=inet_addr("

127.0.0.1");

24if(connect(client,(sockaddr*)&client_in,sizeof(client_in))==0)25

28return0;

29 }

就可以連上了

18 3 2 建立套接字

套接字是通過標準的 unix 檔案描述符和其他的程式通訊的乙個方法。套接字在使用前必須先被建立,建立套接字的系統呼叫為 socket 它的一般形式是 int socket int domain,int type,int protocol 建立出來的套接字是一條通訊線路的乙個端點,domain 引數負...

4 6 2 建立套接字

當 socket 函式返回 invalid socket 時,呼叫 showerrormsg 函式顯示呼叫失敗的原因。建立套接字程式清單如下。建立 windows socket shost socket af inet,sock stream,ipproto tcp if invalid socke...

建立套接字失敗

if afxsocketinit 執行程式,會發現彈出對話方塊 載入套接字型檔失敗。原因是因為該段 新增的位置不對。必須寫在initinstance函式的開始位置,建立視窗前 考慮到afxsocketinit 函式只能載入1.1版本的套接字型檔,若要載入其他版本的套接字型檔,則需要新增如下 word...