服務端socket程式

2021-09-25 11:32:36 字數 2120 閱讀 4523

socket是一種ipc方法,本文實現乙個簡單的服務端例程,用於了解socket程式框架。

socket函式用於建立套接字。

bind函式用於分配ip位址和埠號。

listen函式將套接字轉為可接收連線狀態。

accept函式受理連線請求。如果在沒有連線的情況下呼叫該函式,則不會返回,直到有連線請求為止。

connect函式向伺服器端傳送連線請求。

windows端編寫socket,需要呼叫ws2_32.lib庫和wsastartup函式。

wsadata ws;	//初始化動態鏈結庫

wsastartup(makeword(2,2), &ws);//主版本為2,副版本為2

函式的使用可以在linux下輸入man檢視,或者閱讀相關書籍。

#include

#include

#ifdef win32

//windows環境下編譯

#include

#else

//linux環境下編譯

#include

#include

#include

#include

#define closesocket close

//linux中使用close函式

#endif

#include

intmain

(int argc,

char

*ar**)

unsigned

short port =

8080;if

(argc >1)

sockaddr_in saddr;

saddr.sin_family = af_inet;

saddr.sin_port =

htons

(port)

;//注意位元組序轉換

saddr.sin_addr.s_addr =

htonl(0

);if(

bind

(sock,

(sockaddr*

)&saddr,

sizeof

(saddr))!=

0)printf

("bind port %d success!\n"

, port)

;listen

(sock,10)

; sockaddr_in caddr;

socklen_t len =

sizeof

(caddr)

;int client =

accept

(sock,

(sockaddr*

)&caddr,

&len)

;printf

("accept client %d\n"

, client)

;char

*ip =

inet_ntoa

(caddr.sin_addr)

;unsigned

short cport =

ntohs

(caddr.sin_port)

;printf

("client ip is %s,port is %d\n"

, ip, cport)

;char buf[

1024]=

;for(;

;)send

(client,

"ok\n",4

,0);

printf

("recv %s\n"

, buf);}

closesocket

(client)

;closesocket

(sock)

;getchar()

;return0;

}

在linux中編譯測試,輸入「quit」退出,使用telnet工具。

服務端 客戶端Socket通訊

服務端 using system using system.collections.generic using system.net using system.net.sockets using system.text using system.text.regularexpressions usi...

socket 服務端於客戶端

usr bin env python coding utf 8 time 2017 8 23 15 33 author mr zhang site file 服務端.py software pycharm from socket import import subprocess,struct,jso...

Socket傳輸案例(上) 服務端

這篇部落格呢主要是兩個手機進行 socket 通訊案例的分析 話說老娘也算寫了幾篇部落格,為什麼訪問量就是少的可憐呢 什麼是 tcp ip 協議,什麼是 socket 網路由下往上分為 物理層 資料鏈路層 網路層 ip協議 傳輸層 tcp協議 會話層 表示層和應用層 http協議 tcp tp協議簡...