基於tcp的echo程式
自己當場手輸的文字 勿噴
內容:
所謂echo,就是伺服器把它所收到的資料原封不動地回送給客戶端。
流程:
1.客戶端向伺服器傳送字串「hello world!」;
2.伺服器收到後,顯示客戶端的位址和埠,並把收到的資料回送給客戶端;
3.客戶端收到回送的資料後顯示出來。
要求:
完成tcp的客戶、伺服器程式;
伺服器的固定埠號為20000。
具體原理不想寫了
因為實驗報告是手寫的 不是電子檔
這個老師很特別 大家都這麼說
具體**:
客服端**:
#pragma comment(lib,"ws2_32.lib")
#include#include#include#includeint main()
socket sock=socket(af_inet,sock_stream,0);
if(invalid_socket==sock)
sockaddr_in serveraddr;
serveraddr.sin_family=af_inet;
serveraddr.sin_port=htons(20000);
serveraddr.sin_addr.s_addr=inet_addr("127.0.0.1");
err=connect(sock,(sockaddr*)&serveraddr,sizeof(serveraddr));
printf("%d\n",sock);
if(socket_error == err)
char data="hello world!";
int sbyte=send(sock,data,strlen(data),0);
if(socket_error==sbyte)
shutdown(sock,sd_send);
char rbuf[1024];
while(1)
if(0==rbyte)
printf("tcp recv[%d]data:%s\n",rbyte,rbuf); }
closesocket(sock);
wsacleanup();
return 0;
}
伺服器端**:
#include #include #include #pragma comment(lib,"ws2_32.lib")
int main()
socket sock = socket (af_inet,sock_stream,0);
if(invalid_socket == sock)
sockaddr_in locaaddr;
locaaddr.sin_family = af_inet;
locaaddr.sin_port = htons (20000);
locaaddr.sin_addr.s_addr = htonl(inaddr_any);
err = bind(sock,(sockaddr*)&locaaddr,sizeof (locaaddr));
printf("%d\n",sock);
if(socket_error == err)
err = listen(sock,5);
if(socket_error == err)
sockaddr_in clientaddr;
int addrlen = sizeof(clientaddr);
while(1)
char rbuf[1024];
while(1)
if(0 == rbyte)
printf("tcp recv [%d]data: %s\n",rbyte,rbuf);
int sbyte = send(sockconnected,rbuf,rbyte,0);
if(socket_error == sbyte)}}
closesocket(sock);
wsacleanup();
return 0;
}
基於UDP的ECHO控制台程式
一早結束了網路程式設計的實驗,小菜一直沒空記錄一下 今天寫點吧 內容 所謂echo,就是伺服器把它所收到的資料原封不動地回送給客戶端。流程 1.客戶端向伺服器傳送字串 hello world 2.伺服器收到後,顯示客戶端的位址和埠,並把收到的資料回送給客戶端 3.客戶端收到回送的資料後顯示出來。要求...
TCP網路程式設計之echo回射程式
tcp網路程式設計有三個例子最值得學習研究,分別是echo chat proxy,都是長連線協議。接下來,把這幾個例子都實現。本節用乙個簡單的例子來講tcp客戶 伺服器程式框架,這也是echo的實現。程式的基本流程 客戶從標準輸入鍵入一行文字,並傳送給伺服器。伺服器接收到文字之後回射給客戶端。客戶端...
基於TCP的網路聊天程式
本例項是基於tcp的網路聊天程式,根據有關tcp的套接字socket程式設計中伺服器的設計過程,編寫的 新建工程 新建檔案 新建項 include include 引入winsock標頭檔案 int main 判斷請求載入的版本號是否符合要求 if lobyte wsadata.wversion 2...