基於TCP的網路聊天程式

2021-10-01 15:37:35 字數 2443 閱讀 2839

本例項是基於tcp的網路聊天程式,根據有關tcp的套接字socket程式設計中伺服器的設計過程,編寫的**。

新建工程->新建檔案->新建項

#include#include/*引入winsock標頭檔案*/

int main()

/*判斷請求載入的版本號是否符合要求*/

if ( lobyte( wsadata.wversion ) != 2 ||

hibyte( wsadata.wversion ) != 2 )

/*-----------------------------------------*/

/*------------設定連線位址-----------------*/

/*-----------------------------------------*/

server_add.sin_family=af_inet;/*位址家族,對於必須是af_inet,注意只有它不是網路網路位元組順序*/

server_add.sin_addr.s_un.s_addr=htonl(inaddr_any);/*主機位址*/

server_add.sin_port=htons(5000);/*埠號*/

/*------------建立套接字-------------------*/

socket_server=socket(af_inet,sock_stream,0);

/*-----------------------------------------*/

/*---繫結套接字到本地的某個位址和埠上----*/

/*-----------------------------------------*/

/*socket_server為套接字,(sockaddr*)&server_add為伺服器位址*/

if(bind(socket_server,(sockaddr*)&server_add,sizeof(sockaddr) )==socket_error)

/*-----------------------------------------*/

/*------------設定套接字為監聽狀態---------*/

/*-----------------------------------------*/

/*監聽狀態,為連線做準備,最大等待的數目為5*/

if(listen(socket_server,5)<0)

/*-----------------------------------------*/

/*------------接受連線---------------------*/

/*-----------------------------------------*/

length=sizeof(sockaddr);

/*接受客戶端的傳送請求,等待客戶端傳送connect請求*/

socket_receive=accept(socket_server,(sockaddr*)&client_add,&length);

if(socket_receive==socket_error)

/*-----------------------------------------*/

/*--------------進行聊天-------------------*/

/*-----------------------------------------*/

while(1) /*無限迴圈*/

else

/*--------傳送資料---------*/

printf("please enter message:");

scanf("%s",sendbuf);

sendlen=send(socket_receive,sendbuf,100,0);

if(sendlen<0)

}/*-----------------------------------------*/

/*---------釋放套接字,關閉動態庫----------*/

/*-----------------------------------------*/

closesocket(socket_receive); /*釋放客戶端的套接字資源*/

closesocket(socket_server);/*釋放套接字資源*/

wsacleanup();/*關閉動態鏈結庫*/

return 0;

}

注意:

在執行程式之前,要新增相應的庫檔案ws2_32.lib

以上就是有關伺服器端的**。整個程式流程按照以下順序編寫:

(1)建立套接字

(2)繫結套接字到本地的位址和埠上

(3)設定套接字為監聽狀態

(4)接受請求連線的請求

(5)進行通訊

(6)通訊完畢,釋放套接字資源

基於C 的聊天程式

1.引言 1.1目的 編寫詳細設計說明書是軟體開發過程必不可少的部分,其目的是為了在完成需求分析說明書的基礎上完成需求分析說明規定的各項模組的具體實現的設計工作。1.2定義 套接字socket 網路上的兩個程式通過乙個雙向的通訊連線實現資料的交換,這個連線的一端稱為乙個socket。tcp協議 tc...

Delphi簡單TCP聊天程式

首先上截圖 最近有點無聊,於是將以前寫到一半的聊天程式拿出來改進了一下。delphi自帶兩個控制項 tidtcpserver,tidtcpclient。顧名思義,乙個是伺服器端用的,另乙個是客戶端用的。程式主要思路如下,客戶端程式開始執行時與伺服器端建立連線,使用者登入時向伺服器端傳送login命令...

TCP多主機聊天程式

多程序實現 1 include 2 include 3 include 4 include 5 include 6 include 7 include 8 include 9 10 void serverio int fd 11 21 else if s 0 22 26 else 27 32 33 ...