FTP 編寫 2 客戶端與服務端的連線

2021-08-03 08:15:21 字數 2209 閱讀 9514

首先編寫客戶端與服務端能進行簡單的連線,這個較為容易:

服務端的編寫流程是:啟動 winsock、建立套接字、繫結套接字、監聽、接收連線、關閉連線、關閉套接字、關閉 winsock

客戶端的編寫流程是:啟動 winsock、建立套接字、連線、關閉連線和套接字、關閉 winsock

**較為簡單,具體如下:

#include 

#include

#include

#pragma comment(lib,"ws2_32.lib")

void main()

//建立socket

slisten = socket(af_inet, sock_stream, 0);

if (slisten == invalid_socket)

//繫結ip位址

ser.sin_family = af_inet;

ser.sin_port = htons(iport);

ser.sin_addr.s_addr = htonl(inaddr_any);

if (bind(slisten, (lpsockaddr)&ser, sizeof(ser)) == socket_error)

//監聽

if (listen(slisten, 5) == socket_error)

ilen = sizeof(cli);//獲取客戶端網路位址的長度

//接受連線和傳送歡迎資訊

//用迴圈使程式一直執行

while (true)

//顯示客戶端的 ip 資訊

char clibuf[20] = ;

inet_ntop(af_inet, (void*)&cli.sin_addr, clibuf, 16);

std::cout

<< "accept client ip:"

<< clibuf << ":"

<< ntohs(cli.sin_port) << std::endl;

//傳送資訊給客戶端

isend = send(saccept, buf, sizeof(buf), 0);

if (isend == socket_error)

else

if (isend == 0)

else

//關閉連線

closesocket(saccept);

}//關閉監聽

closesocket(slisten);

//關閉 winsock

wsacleanup();

}

#include 

#include

#include

#pragma comment(lib,"ws2_32.lib")

void main()

char addr[20] = ;

std::cin >> addr;//輸入服務端 ip 位址

//建立socket

ser.sin_family = af_inet;

ser.sin_port = htons(iport);

inet_pton(af_inet, addr, (void*)&ser.sin_addr.s_addr);

sclient = socket(af_inet, sock_stream, 0);

if (sclient == invalid_socket)

//連線並進行簡單的操作

if (connect(sclient, (struct sockaddr*)&ser, sizeof(ser)) == invalid_socket)

else

else

if (ilen == socket_error)

std::cout

<< "recv() data from server:"

<< buf << std::endl;

}//關閉連線並退出

closesocket(sclient);

//關閉 winsock

wsacleanup();

system("pause");

}

需要注意的是在客戶端輸入的 ip 位址,這個位址需要輸入本地電腦的 ip 位址,使用 cmd 調出 windows 的 dos 介面,輸入 ipconfig 命令,找到 ipv4 位址,然後在 客戶端進行填寫即可

C 服務端與客戶端

c 服務端與客戶端連線實現的由來 那麼既然乙個伺服器端口可以應對多個客戶端連線,那麼接下來我們就看一下,如何讓多個客戶端與服務端連線。如同我們上面所說的,乙個tcpclient就是乙個socket,所以我們只要建立多個tcpclient,然後再呼叫connect 方法就可以了 c 服務端與客戶端連線...

服務端與客戶端互動

搭建伺服器 伺服器端 using system.net.sockets using system.net using system.io using system.text namespace sockerservice endpoint point new ipendpoint ipaddress...

NodeJS TCP客戶端與服務端

server.js var net require net 載入網路模組 var clients 0 建立id來引用連線的每乙個客戶端 var server net.createserver function client client.write welcome client clientid 使...