當前位置:首頁 » 課程大全 » 計算機網路課程設計利用socket實現雙機通信

計算機網路課程設計利用socket實現雙機通信

發布時間: 2021-02-25 00:35:06

『壹』 計算機網路課程設計,基於tcp協議聊天程序設計課程設計,用C++編寫,支持多人聊天,誠心求

cp協議聊天程序設計課程設
我知道的內容,就是這么點

『貳』 跪求:使用socket進行通信程序設計,編寫一個網路通信應用程序,包括伺服器端和客服端兩個程序。

我寫了一個, 因為是剛學 ,只能實現兩個人聊天 ,程序很簡單 只有100多行

『叄』 計算機網路課程設計

恐怕只懸賞分就不行了吧……
1、2、3可以上網找一下,有很多源代碼
4建議你找一下WinPCAP的資料,對實現這個有很大幫助

『肆』 求C語言高手,實現一個簡單的TCPIP程序以實現兩台計算機之間的聊天通信,

你上面給出的代碼其實就是MSDN裡面的演示代碼,不過不完整,只演示了兩個函數的使用,我給你看看我寫的TCP通訊程序,可以在同一個區域網內的兩台不同計算機之間聊天:

這其實就是某本將網路通訊的教程裡面的例子,不過是我自己重寫了一遍,下面給你代碼:

========================

下面是公共代碼:

========================

#ifndef__CINITSOCK__H__

#define__CINITSOCK__H__

#include<winsock2.h>

#include<iphlpapi.h>

#pragmacomment(lib,"ws2_32.lib")

#pragmacomment(lib,"iphlpapi.lib")

classCInitSock

{

public:

CInitSock(intnMinorVer=2,intnMajorVer=2)

{

WSADATAwsData;

WORDwVer=MAKEWORD(nMinorVer,nMajorVer);

if(0!=WSAStartup(wVer,&wsData))exit(0);

}

~CInitSock()

{

WSACleanup();

}

};

#endif

========================

下面是客戶端的代碼:

=======================

#include"CInitSock.h"

#include<iostream>

usingnamespacestd;

CInitSockg_Sock;

voidmain()

{

SOCKETsockClient=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

if(INVALID_SOCKET==sockClient)

return;

sockaddr_insockAddr;

sockAddr.sin_family=AF_INET;

sockAddr.sin_port=htons(4567);

sockAddr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");

if(-1==connect(sockClient,(sockaddr*)&sockAddr,sizeof(sockAddr)))

{

cout<<"connectfailed"<<endl;

return;

}

while(true)

{

charszBuf[MAX_PATH];

ZeroMemory(szBuf,sizeof(szBuf));

cout<<"YouSay:";

cin>>szBuf;

if(SOCKET_ERROR ==send(sockClient,szBuf,MAX_PATH,0))

{

cout<<"sendfailed"<<endl;

return;

}

intnRecvLen=recv(sockClient,szBuf,MAX_PATH,0);

if(nRecvLen>0)

{

//szBuf[nRecvLen]='';

cout<<"ServiceSay:"<<szBuf<<endl<<endl;

}

else

{

cout<<"recvfailed"<<endl;

return;

}

}

closesocket(sockClient);

}

======================

下面是服務端的代碼:

======================

#include"CInitSock.h"

#include<iostream>

usingnamespacestd;

CInitSockg_Sock;

voidmain()

{

SOCKETsockClient=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

if(INVALID_SOCKET==sockClient)

return;

sockaddr_insockAddr;

sockAddr.sin_family=AF_INET;

sockAddr.sin_port=htons(4567);

sockAddr.sin_addr.S_un.S_addr=INADDR_ANY;

bind(sockClient,(sockaddr*)&sockAddr,sizeof(sockAddr));

listen(sockClient,SOMAXCONN);

charszBuf[MAX_PATH];

sockaddr_inremoteAddr;

intnLen=sizeof(sockaddr_in);

SOCKETsock=accept(sockClient,(sockaddr*)&remoteAddr,&nLen);

while(true)

{

intnRecvLen=recv(sock,szBuf,MAX_PATH,0);

if(nRecvLen>0)

{

cout<<"ClientSay:"<<szBuf<<endl<<endl;

}

ZeroMemory(szBuf,sizeof(szBuf));

cout<<"YouSay:";

cin>>szBuf;

if(SOCKET_ERROR==send(sock,szBuf,MAX_PATH,0))

{

cout<<"sendfailed"<<endl;

}

}

closesocket(sock);

closesocket(sockClient);

}

希望能夠幫到樓主。

『伍』 VC(MFC)的有關問題 一 利用CSocket類實現區域網內雙擊通信 二 在某一台計算機上畫一任

vc雙緩沖:VC++雙緩沖實現方法

在圖形圖象處理編程過程中,雙緩沖是種基本技術我們知道,如果窗體在響應WM_PAINT消息時候要進行復
雜圖形處理那麼窗體在重繪時由於過頻刷新而引起閃爍現象解決這問題有效思路方法就是雙緩沖技術

窗體在刷新時總要有個擦除原來圖象過程OnEraseBkgnd它利用背景色填充窗體繪圖區然後在新繪圖代碼
進行重繪這樣擦寫造成了圖象顏色反差當WM_PAINT響應很頻繁時候這種反差也就越發明顯於是我們就看到了
閃爍現象

我們會很自然想到避免背景色填充是最直接辦法但是那樣話窗體上會變團糟每次繪制圖象時候都沒有將原來圖
象清除造成了圖象殘留於是窗體重繪時畫面往往會變亂 7 8糟所以單純禁止背景重繪是不夠我們還要進行重新
繪圖但要求速度很快於是我們想到了使用BitBlt它可以支持圖形塊復制速度很快我們可以先在內存中作圖然後用
此將做好圖復制到前台同時禁止背景刷新這樣就消除了閃爍以上也就是雙緩沖繪圖基本思路

、普通思路方法:

先按普通做圖思路方法進行編程即在視類OnDraw中添加繪圖代碼在此我們繪制若干同心圓代碼如下:

CBCDoc* pDoc = GetDocument;

ASSERT_VALID(pDoc);

CPo ptCenter;

CRect rect,ellipseRect;

GetClientRect(&rect);

ptCenter = rect.CenterPo;

for( i=20;i>0;i--)

{
ellipseRect.SetRect(ptCenter,ptCenter);

ellipseRect.InflateRect(i*10,i*10);

pDC->Ellipse(ellipseRect);

}

編譯運行嘗試改變窗口大小可以發現閃爍現象

2、雙緩沖思路方法:

在雙緩沖思路方法中首先要做是屏蔽背景刷新背景刷新其實是在響應WM_ERASEBKGND消息我們在視類
中添加對這個消息響應可以看到預設代碼如下:

BOOL CMYView::OnEraseBkgnd(CDC* pDC)

{

CView::OnEraseBkgnd(pDC);

}

是父類OnEraseBkgnd我們屏蔽此只須直接 TRUE;即可

下面是內存緩沖作圖步驟

CPo ptCenter;

CRect rect,ellipseRect;
GetClientRect(&rect);

ptCenter = rect.CenterPo;

CDC dcMem; //用於緩沖作圖內存DC

CBitmap bmp; //內存中承載臨時圖象點陣圖

dcMem.CreateCompatibleDC(pDC); //依附窗口DC創建兼容內存DC

bmp.CreateCompatibleBitmap(pDC,rect.Width,rect.Height);//創建兼容點陣圖

dcMem.SelectObject(&bmp); //將點陣圖選擇進內存DC

//按原來背景填充客戶區不然會是黑色

dcMem.FillSolidRect(rect,pDC->GetBkColor);

for( i=20;i>0;i--) //在內存DC上 做同樣同心圓圖象

{

ellipseRect.SetRect(ptCenter,ptCenter);

ellipseRect.InflateRect(i*10,i*10);

dcMem.Ellipse(ellipseRect);

}

pDC->BitBlt(0,0,rect.Width,rect.Height,

&dcMem,0,0,SRCCOPY);//將內存DC上圖象拷貝到前台

dcMem.DeleteDC; //刪除DC
bm.DeleteObject; //刪除點陣圖

由於復雜畫圖操作轉入後台我們看到是速度很快復制操作自然也就消除了閃爍現象

注意:bmp.CreateCompatibleBitmap(pDC,rect.Width,rect.Height);

這裡面CreateCompatibleBitmap第個參數不能用dcMem這樣話創建是黑白點陣圖如果你要創建彩色點陣圖需要用
pDC它用來創建了內存DC. 詳細請見下面MSDN:

When a memory device context is created, it initially has a 1-by-1 monochrome bitmap selected o it.
If this memory device context is used

『陸』 計算機網路課程設計:TCP通信功能實現 要使用到的平台和語言有哪些

很多啊。java的最簡單。
eclipse java
visual studio c++ c/c++
只做簡單通信不難。

『柒』 利用Java 語言的Socket 編程實現網路環境下兩台計算機之間的字元聊天功能

伺服器端:
ServerSocket server = new ServerSocket (port);綁定埠,開始監聽客戶接入
Socket client = server.accept (); 接收客戶接入.
socket.getInputStream();獲輸入流,可以讀數據.
socket.getOutputStream ();獲輸出流,可以寫數據.

客戶端:
Socket socket = new Socket (host, port); 建立跟伺服器的鏈接
socket.getInputStream();獲輸入流,可以讀數據.
socket.getOutputStream ();獲輸出流,可以寫數據.

去讀讀,相信你很塊就懂了.
http://www.yesky.com/SoftChannel/72342371961929728/20040309/1775362.shtml

『捌』 如何用SOCKET實現兩台計算機之間的通訊

兩部分代碼,一個server,一個client。

server 端代碼:

#include"stdio.h"
#include"Winsock2.h"
#include"iostream"
#include"string"

//#pragmacomment(lib,"ws2_32.lib")

//definehostIPansableport.
#defineHOST_IP127.0.0.1
#defineHOST_PORT8080
#defineOK_STR"OK"

voidmain(){
//theversionbitofWinsock
intversion_a=1;//lowbit
intversion_b=1;//highbit

//makeword
WORDversionRequest=MAKEWORD(version_a,version_b);
WSADatawsaData;
interr;

err=WSAStartup(versionRequest,&wsaData);

if(err!=0){
printf("ERROR!");
return;
}

if(LOBYTE(wsaData.wVersion)!=1||HIBYTE(wsaData.wVersion)!=1)
{
printf("WRONGWINSOCKVERSION!");
WSACleanup();
return;
}


SOCKETsocServer=socket(AF_INET,SOCK_DGRAM,0);

SOCKADDR_INaddr_Srv;

//It'snestthreestructsasS_un_b,S_un_wandS-un.(union)
addr_Srv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
//setprotocolfamily
addr_Srv.sin_family=AF_INET;
//sethostport
addr_Srv.sin_port=htons(HOST_PORT);
//bindsockettothehost
bind(socServer,(SOCKADDR*)&addr_Srv,sizeof(SOCKADDR));
//addressofaclient
SOCKADDR_INaddr_Clt;
charrecvBuf[100];
intfromlen=sizeof(SOCKADDR);
while(true){
recvfrom(socServer,recvBuf,100,0,(SOCKADDR*)&addr_Clt,&fromlen);std::cout<<recvBuf<<std::endl;
sendto(socServer,OK_STR,strlen(OK_STR)+1,0,(SOCKADDR*)&addr_Clt,sizeof(SOCKADDR));
}
closesocket(socServer);
WSACleanup();
}

client端代碼:

#include"Winsock2.h"
#include"iostream"
#include"stdio.h"
#pragmacomment(lib,"ws2_32.lib")


#defineHOST_IP"127.0.0.1"
#defineHOST_PORT8080

voidmain(){
//theversionbitofWinsock
intversion_a=1;//lowbit
intversion_b=1;//highbit
//makeword
WORDversionRequest=MAKEWORD(version_a,version_b);
WSADatawsaData;
interror;
error=WSAStartup(versionRequest,&wsaData);
if(error!=0){
printf("ERROR!");
return;
}
if(LOBYTE(wsaData.wVersion)!=1||HIBYTE(wsaData.wVersion)!=1)
{
printf("WRONGWINSOCKVERSION!");
WSACleanup();
return;
}
//requestinfoobtainedbyuser'sinput
charrequestStr[100];
//buildasockeet
SOCKETsocClient=socket(AF_INET,SOCK_DGRAM,0);
SOCKADDR_INaddrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
addrSrv.sin_family=AF_INET;//settheprotocolfamily
addrSrv.sin_port=htons(HOST_PORT);//settheportnumber
//.
charcRecvBuf[100];
while(true){
std::cin>>requestStr;
//
sendto(socClient,requestStr,strlen(requestStr)+1,0,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
recv(socClient,cRecvBuf,strlen(cRecvBuf)+1,0);
std::cout<<cRecvBuf<<std::endl;
}

//
closesocket(socClient);
WSACleanup();
//return0;
}

『玖』 計算機網路課程設計(某中型企業雙出口網路設計)

兄弟``照你這復樣算制`每個員工都用電腦那要分配900個IP``192.168.0.0夠嗎?如果真的是以安全來看的話``我建議分不同的內網地址比較好`A類地址10.0.0.0 也行呀`
這個網路有一點點復雜的哦``你給的這些還太少了``具體網路拓樸還得根椐你們公司的樓面來覺定`
```首先算算要多少個內網IP```根據IP來確定交換機的個數,再根據部門的需要來劃分VLAN``然後再劃分串列鏈數``這是內部網路``再根據樓面結構來確定內網有兩條專線那肯定用兩條路由器`用熱備份協議`這個協議可以幫你達到`要達到輕載要求:低負載,高帶寬,簡單,有效,保證骨幹網路的穩定有效。
2.設備可管理,出口具有負載均衡和冗餘備份功能;
根據這個劃分用RAP、或OSPF協議``

『拾』 c#利用socket實現兩台計算機通信

1.創建socket 2.確定來本地計算機端點源(ip和埠號) 3.socket綁定端點 4.socket.receive(); 接收數據 5.socket.send();發送數據 6.socket.close();關閉socket

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919