tcp 網路客戶端偵聽連線。
可使用 tcpclient 或 socket 來連線 tcplistener。可使用 ipendpoint、本地 ip 位址及埠號或者僅使用埠號,來建立 tcplistener。可以將本地 ip 位址指定為 any,將本地埠號指定為 0(如果希望基礎服務提供程式為您分配這些值)。如果您選擇這樣做,可在連線套接字後使用 localendpoint 屬性來標識已指定的資訊。
start 方法用來開始偵聽傳入的連線請求。start 將對傳入連線進行排隊,直至您呼叫 stop 方法或它已經完成 maxconnections 排隊為止。可使用 acceptsocket 或 accepttcpclient 從傳入連線請求佇列提取連線。這兩種方法將阻止。如果要避免阻止,可首先使用 pending 方法來確定佇列中是否有可用的連線請求。
tcpclient:
tcpclient 為 tcp 網路服務提供客戶端連線。
tcpclient 類提供了一些簡單的方法,用於在同步阻塞模式下通過網路來連線、傳送和接收流資料。
為使 tcpclient 連線並交換資料,使用 tcp protocoltype 建立的 tcplistener 或 socket 必須偵聽是否有傳入的連線請求。可以使用下面兩種方法之一連線到該偵聽器:
建立乙個 tcpclient,並呼叫三個可用的 connect 方法之一。
使用遠端主機的主機名和埠號建立 tcpclient。此建構函式將自動嘗試乙個連線。
注意 如果要在同步阻塞模式下傳送無連線資料報,請使用 udpclient 類。
對繼承者的說明: 要傳送和接收資料,請使用 getstream 方法來獲取乙個 networkstream。呼叫 networkstream 的 write 和 read 方法與遠端主機之間傳送和接收資料。使用 close 方法釋放與 tcpclient 關聯的所有資源。
**實現:
#include#include#include#include#include#include#includevoid usage(char *name)
int startup(const char* _ip,int _port)
struct sockaddr_in local;
local.sin_family = af_inet;
local.sin_port= htons(_port);
local.sin_addr.s_addr = inet_addr(_ip);
if(bind(sock,(struct sockaddr*)&local,sizeof(local))<0)
return sock;
}int main(int argc,char* argv)
int listen_sock=startup(argv[1],atoi(argv[2]));
while(1)
inet_ntop(af_inet,&client.sin_addr,cli_ip,inet_addrstrlen);
printf("get new client:ip->%s,port->%d\n",cli_ip,ntohs(ntohs(client.sin_port)));
char buf[1024];
while(1)
else if(s==0)
else
}close(new_sock);
} return 0;
}
TCP server程式設計
一 基本解釋 在之前的部落格中我已經簡單的介紹過tcp建立連線時的三次握手,以及在斷開連線時的四次揮手,在此我就不再多說了,此次介紹基於tcp的套接字程式設計。在此類程式設計中會用到一些結構體以及函式,下來我簡單地介紹下這些 1.struct sockaddr in 其結構如下 sockaddr i...
Linux下 C語言編寫 TCP Server
用c寫的,做了函式的封裝,記錄在此,方便查詢 server.h ifndef server h define server h define false 1 define true 0 int server init char server port 伺服器初始化 int wait accept i...
QT Socket程式設計 TCP Server
1 在 pro檔案中新增 qt network 2 在 中新增 qtcpserver m ptcpserver server tcp socket qtcpsocket m pconnectsocket client connect socket 初始化socket m ptcpserver new...