TCP客戶端服務端demo

2021-08-29 05:32:57 字數 2196 閱讀 5096

服務端程式

>#include

#include

#include

#include

#include

#include

#include

int main()

//列印握手成功的客戶端

struct sockaddr_in servaddr;    

socklen_t nservlen = sizeof(servaddr);

getsockname( sockfd, (struct sockaddr*)&servaddr, &nservlen);

char buf[128];

inet_ntop(af_inet, &servaddr.sin_addr, buf, sizeof(buf));

printf("servip = %s, servport = %d\n", buf, ntohs(servaddr.sin_port) );

inet_ntop(af_inet, &connaddr.sin_addr, buf, sizeof(buf));

printf("clinip = %s, clinport = %d\n", buf, ntohs(connaddr.sin_port) );

//每個連線都開乙個子程序

pid = fork();

if ( pid == 0 )

printf("exit fork\n");

exit(0);

}close(connfd);//在父程序中關閉連線套接字,最終套接字的關閉由子程序決定

//break;

} return 0;

}客戶端程式

#include

#include

#include

#include

#include

#include

int main()

int sockfd = socket(af_inet, sock_stream, 0);

if ( sockfd < 0 )

printf("socketfd err\n");

struct sockaddr_in connaddr;

socklen_t nlen = sizeof(connaddr);

connaddr.sin_family = af_inet;

connaddr.sin_port = htons(2019);

inet_pton(af_inet, "10.0.2.15", &connaddr.sin_addr); 

if ( connect(sockfd, (struct sockaddr*)&connaddr, sizeof(connaddr) ) < 0 )

printf("conn fail\n");

struct sockaddr_in clientaddr;

nlen = sizeof(clientaddr);

getsockname(sockfd, (struct sockaddr*)&clientaddr, &nlen);

char buf[128];

inet_ntop(af_inet, &clientaddr.sin_addr, buf, sizeof(buf));

printf("clientip = %s, clientport = %d\n", buf, ntohs(clientaddr.sin_port) );

struct sockaddr_in serveraddr;

nlen = sizeof(serveraddr);

getpeername(sockfd, (struct sockaddr*)&serveraddr, &nlen);

printf("serverip = %s, serverport = %d\n", buf, ntohs(serveraddr.sin_port) );

while(true)

sendto (sockfd, "111111", 10, msg_trunc, (sockaddr*)&connaddr, sizeof(connaddr));      

//sendto(sockfd, "11111", 4);

printf("send data, port = %d\n", ntohs(clientaddr.sin_port));

sleep(1);

return 0;

tcp套接字客戶端 服務端Demo

tcp socket 服務端編寫步驟 1 建立socket 2 bind套接字 3 listen監聽套接字 4 accept等待客戶端連線 5 read write資料的讀寫 6 close關閉套接字 tcp socket 客服端編寫步驟 1 socket套接字建立 2 connect連線 3 re...

TCP通訊,多客戶端通訊(客戶端 服務端)

客戶端和伺服器間的交流,客戶端傳送資訊,伺服器接收到,並返回資訊 長連線建立socket連線服務端 指定ip位址,埠號 通過ip位址找對應的伺服器 呼叫socket的getinputstream 和getoutputstream 方法獲取和服務端相連的io流 輸入流可以讀取服務端輸出流寫出的資料 輸...

TCP服務端和客戶端(1)

在陳述這個小例項之前,首先將mafile寫出來 makefile all client server all規則,他依賴於client和server規則 client tcp process.o tcp client.o client規則生成客戶端程式 gcc o client tcp proces...