udp教程可以檢視:
tcp通訊協議鏈結過程如下圖所示。
由上圖可看出
tcp的伺服器需要bind->listen->accept
tcp的客戶端需要connect
伺服器**如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define port 7000
#define queue 20
int main()
/*listen*/
if(listen(ss, queue) == -1)
/*connect*/
struct sockaddr_in client_addr;
socklen_t length = sizeof(client_addr);
///成功返回非負描述字,出錯返回-1
int conn = accept(ss, (struct sockaddr*)&client_addr, &length); //目測需要客戶端部分的addr
if( conn < 0 )
while(1) else
if(retval == 0)else
/*使用者輸入資訊了,開始處理資訊並傳送*/
if(fd_isset(0, &rfds))}}
close(conn);
close(ss);
return
0;}
注意:伺服器是採用accept()返回的值進行收發資料。
客戶端**如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define myport 7000
#define buffer_size 1024
int main()
while(1)else
if(retval == 0)else
/*使用者輸入資訊了,開始處理資訊並傳送*/
if(fd_isset(0, &rfds))}}
close(sock_cli);
return
0;}
注意客戶端是採用socket()的返回值進行收發資料。
備註:
socket()函式的引數選擇可以檢視部落格:
waldm
linux下c語言tcp通訊
tcp ip 協議組 應用層 ftp smtp http 傳輸層 tcp udp 網路層 ip icmp igmp 物理層 網路介面層 鏈路層 乙太網 令牌環網 fddi 例項 服務端 include include include include include include include i...
TCP通訊C 實現
tcp客戶端與伺服器端通訊模型 伺服器端實現 include include pragma comment lib,ws2 32 using namespace std void main if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1 ...
C 實現TCP通訊
服務端 include initsock.h include include include include using namespace std cinitsock initsock 初始化winsock庫 sockaddr in serveraddr sockaddr in remoteadd...