三 bind 函式
該函式功能是將建立好的套接字繫結到本地的某個位址和埠上。
函式宣告:
int bind(sockets,const struct sockaddr far*name,intnamelen
引數說明:
s:指定要繫結的套接字;
四sockaddr結構的介紹。
sockaddr 結構的宣告:
struct sockaddr ;
說明:
sa_family:位址家族,ip位址家族的值只能設為af_inet
sa_data: 佔位作用,要求一塊記憶體空間,可以用該區域指定與協議相關的具體資訊。
五 sockaddr_in結構體
在其於tcp/ip程式設計時,可以使用此結構體來替換sockaddr結構體。
struct sockaddr_in;
說明:
sin_family:位址家族,同樣對於ip位址,該值一直設定為af_inet.
sin_port :ip埠,用於分配給socket的埠號。
sin_addr:ip位址,給於socket的主機ip位址。
sin_zer : 點位,目的使sockaddr_in與sockaddr長度一致。
六 listen函式
該函式是將指定的socket設為監聽模式
int listen(
sockets
,
intbacklog
);
引數說明:
s:是套接字描述
backlog:是等待連線佇列的最大長度,如果設定為somaxconn,那麼下層的服務提供者將負責將這個套接字設定為最大的合理值。注意的是,設定這個值是為了設定等待連線佇列的最大長度,而不是在乙個埠上同時可以進行連線的數目。如,將backlog設為2時,當有3個請求同時到時,前兩個連線被放到等待的佇列中,而有乙個請求被拒絕請求。之後依然可以請求。
七 accept函式
該函式接受客戶端傳送的連線請求。
socket accept(
sockets
,
struct sockaddr far*addr
,
int far*addrlen
);
引數說明:
s: 套接字描述符,該套接字已經為通過listen函式將其設定為監聽狀態;
addr:是指向乙個緩衝區的指標,該緩衝區用來連線實體的位址,也就是當客戶端向伺服器發起連線,伺服器端接受這個連線時,儲存發起連線的這個客戶端的ip位址資訊與埠資訊;
addrlen:乙個返回值,指向乙個整型的指標,返回包含位址資訊的長度。
八:send函式
該函式通過乙個已建立的套接字傳送資料。
int send(
sockets
,
const char far*buf
,
intlen
,
intflags
);
引數說明:
s:是乙個已建立連線的套接字;
buf:指向乙個緩衝區,該緩衝區包含將要傳遞的資料。
len:是緩衝區的長度;
flags:設定的值將影響函式的行為,一般將其設定為0即可。
九:recv函式
該函式從乙個已建立的套接字裡接收資料。
intrecv(
sockets
,
char*buf
,
intlen
,
intflags
);
引數說明:
s:已建立連線的套接字。
buf:是指向乙個緩衝區的指標,用來儲存接受到的資料。
len:緩衝區的長度。
flags:與send函式中的flags引數是相同的!
vc下 USB 通訊的問題
我正在做一 pc 端 通過usb介面和 de3 board 的通訊程式 請問該如何對usb裝置進行判斷?比如pc連有多個usb裝置,從中選取所需的那個 define usbtestdevice class guid 沒有 vendorid 或者 productid 一類的,這種程式是不是只能用於通用...
Linux下使用TCP IP實現網路通訊
建立socket,呼叫socket函式,建立乙個套接字lfd 繫結bind 用bind函式,講lfd與位址號和埠號進行繫結 監聽listen 使用listen函式講套接字設為監聽模式,等待客戶端連線 接受accept accept接受到客戶端連線,返回乙個新的套接字cfd,然後lfd繼續監聽 併發的...
VC 的串列埠通訊
vc 的串列埠通訊 vc 的串列埠通訊 代翔在vc 中有兩種方法可以進行串列埠通訊。一種是利用microsoft公司提供的activex 控制項 microsoft communications control。另一種是直接用vc 訪問串列埠。下面將簡述 這兩種方法。一 microsoft comm...