版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
基于socket簡易聊天程序畢業(yè)設計(論文)簡單的socket程序基于socket簡易聊天程序畢業(yè)設計(論文)全文共10頁,當前為第1頁?;趕ocket簡易聊天程序畢業(yè)設計(論文)全文共10頁,當前為第1頁。雖然很簡單,但還是調(diào)試了很長時間。本科時候接觸過socket——那個帥帥的劉老師的課,現(xiàn)在重新再撿起來。程序中專門建立一個FunThread線程用來接收數(shù)據(jù),實現(xiàn)雙向通信,也可以連續(xù)發(fā)送、連續(xù)接收。代碼貼上來,如果還能保留VAView那樣的顏色區(qū)別就好看了,但是試了好幾遍都不行server:#include<WINSOCK2.H>
#include<stdio.h>#definePORT
6000//服務器端口
#defineMSGSIZE
1024//收發(fā)緩沖區(qū)的大小#pragmacomment(lib,"ws2_32.lib")//鏈接靜態(tài)庫DWORDWINAPIFunThread(LPVOID);//創(chuàng)建一個線程,專門用來接收數(shù)據(jù)SOCKET
sClient;//連接所用套節(jié)字
SOCKET
sListen;//監(jiān)聽套接字
SOCKADDR_INclient;//保存客戶的地址信息
int
iaddrSize=sizeof(SOCKADDR_IN);intmain()
{
WSADATA
wsaData;
SOCKADDR_INlocal;
char
s_Message[MSGSIZE];//收發(fā)緩沖區(qū)WSAStartup(0x0202,&wsaData);//InitializeWindowssocketlibrary
sListen=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);//創(chuàng)建服務器監(jiān)聽套節(jié)字。TCP協(xié)議
local.sin_family=AF_INET;//AF_INET指明使用TCP/IP協(xié)議族
local.sin_port=htons(PORT);//指明連接服務器的端口號
local.sin_addr.s_addr=htonl(INADDR_ANY);//自動獲取本機地址
bind(sListen,(structsockaddr*)&local,sizeof(SOCKADDR_IN));//地址綁定到套接字
listen(sListen,1);//開始監(jiān)聽
sClient=accept(sListen,(structsockaddr*)&client,&iaddrSize);//建立連接
printf("Accepteclient:%s:%d\n",inet_ntoa(client.sin_addr),ntohs(client.sin_port));HANDLEhThread=CreateThread(NULL,0,FunThread,0,0,0);//創(chuàng)建接收線程
CloseHandle(hThread);while(TRUE)
{
printf("ServerSend:");
//從鍵盤輸入
gets(s_Message);
//發(fā)送數(shù)據(jù)
send(sClient,s_Message,strlen(s_Message),0);
}
return0;
}DWORDWINAPIFunThread(LPVOID)
{
charc_Message[MSGSIZE];//收發(fā)緩沖區(qū)
intret;//接收字節(jié)的個數(shù)
while(TRUE)
{
ret=recv(sClient,c_Message,MSGSIZE,0);//接收數(shù)據(jù)
if(ret==SOCKET_ERROR)
{
printf("\nclientisclosed!");
sClient=accept(sListen,(structsockaddr*)&client,&iaddrSize);//重新開始監(jiān)聽
printf("\nAcceptenewclient:%s:%d",inet_ntoa(client.sin_addr),ntohs(client.sin_port));基于socket簡易聊天程序畢業(yè)設計(論文)全文共10頁,當前為第2頁。
memset(c_Message,0,1024);//將原來的clientmessage歸零
continue;
}
c_Message[ret]='\0';
printf("\nReceived:%s\n",c_Message);
}
return0;
}基于socket簡易聊天程序畢業(yè)設計(論文)全文共10頁,當前為第2頁。client:#include<WINSOCK2.H>
#include<stdio.h>#defineSERVER_ADDRESS"127.0.0.1"http://服務器端IP地址
#definePORT
6000
#defineMSGSIZE
1024
#pragmacomment(lib,"ws2_32.lib")
DWORDWINAPIFunThread(LPVOID);
SOCKET
sClient;
SOCKADDR_INserver;
intmain()
{
WSADATA
wsaData;
char
c_Message[MSGSIZE];
WSAStartup(0x0202,&wsaData);
sClient=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
memset(&server,0,sizeof(SOCKADDR_IN));
//先將保存地址的server置為全0
server.sin_family=PF_INET;
//聲明地址格式是TCP/IP地址格式
server.sin_port=htons(PORT);
//指明連接服務器的端口號
server.sin_addr.s_addr=inet_addr(SERVER_ADDRESS);
//指明連接服務器的IP地址
connect(sClient,(structsockaddr*)&server,sizeof(SOCKADDR_IN));//連到剛才指明的服務器上基于socket簡易聊天程序畢業(yè)設計(論文)全文共10頁,當前為第3頁。HANDLEhThread=CreateThread(NULL,0,FunThread,0,0,0);
CloseHandle(hThread);基于socket簡易聊天程序畢業(yè)設計(論文)全文共10頁,當前為第3頁。while(TRUE)
{
printf("ClientSend:");
gets(c_Message);
send(sClient,c_Message,strlen(c_Message),0);
if(!strcmp(c_Message,"exit"))//client自身退出
exit(1);
}
//釋放連接和進行結束工作
closesocket(sClient);
WSACleanup();
return0;
}DWORDWINAPIFunThread(LPVOID)
{
char
s_Message[MSGSIZE];
int
ret;
while(TRUE)
{
ret=recv(sClient,s_Message,MSGSIZE,0);
if(ret==SOCKET_ERROR)
{
printf("\nServerisclosed!\n");
exit(1);
}
s_Message[ret]='\0';
printf("\nReceived:%s\n",s_Message);
if(!strcmp(s_Message,"exit"))//server讓client退出
exit(1);
}
return0;
}基于socket簡易聊天程序畢業(yè)設計(論文)全文共10頁,當前為第4頁。程序在VC++6.0環(huán)境下編譯通過。先運行server端,再運行client,鏈接建立:基于socket簡易聊天程序畢業(yè)設計(論文)全文共10頁,當前為第4頁。基于socket簡易聊天程序畢業(yè)設計(論文)全文共10頁,當前為第5頁。
基于socket簡易聊天程序畢業(yè)設計(論文)全文共10頁,當前為第5頁。基于socket簡易聊天程序畢業(yè)設計(論文)全文共10頁,當前為第6頁。client和server可進行雙通信,可連續(xù)發(fā)送、接收;client可自行退出,也可由server強制退出,發(fā)送exit命令即可:基于socket簡易聊天程序畢業(yè)設計(論文)全文共10頁,當前為第6頁。基于socket簡易聊天程序畢業(yè)設計(論文)全文共10頁,當前為第7頁。
基于socket簡易聊天程序畢業(yè)設計(論文)全文共10頁,當前為第7頁?;趕ocket簡易聊天程序畢業(yè)設計(論文)全文共10頁,當前為第8頁。client退出后,server重新建立監(jiān)聽,有新的client運行時,再次建立新的連接
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度股權轉讓及技術服務合同2篇
- 二零二五版建筑門窗材料采購及安裝服務合同3篇
- 二零二五版?zhèn)€人信用擔保二手房購買貸款合同樣本3篇
- 武漢托管班2025年度教師招聘與素質(zhì)教育服務合同3篇
- 二零二五版智慧城市基礎設施勘察設計服務合同3篇
- 2025年度安全生產(chǎn)應急救援預案合同范本3篇
- 二零二五版智能倉儲物流中心設施維護與安全管理合同3篇
- 二零二五年建筑水電安裝工程合同風險評估合同2篇
- 深圳市2025年度房地產(chǎn)股權交易合同(含工業(yè)地產(chǎn))3篇
- 二零二五版二手房買賣合同補充協(xié)議(歷史遺留問題)范本3篇
- 南充化工碼頭管網(wǎng)施工方案(初稿)
- 2023年消防接警員崗位理論知識考試參考題庫(濃縮500題)
- GB/T 30285-2013信息安全技術災難恢復中心建設與運維管理規(guī)范
- 魯濱遜漂流記閱讀任務單
- 第一章 運營管理概論1
- 《創(chuàng)意繪畫在小學美術教育中的應用(論文)6000字》
- 主體結構驗收匯報材料T圖文并茂
- 管理學原理(南大馬工程)
- 過一個有意義的寒假課件
- 施工現(xiàn)場裝配式集裝箱活動板房驗收表
- 電力業(yè)擴工程竣工驗收單
評論
0/150
提交評論