当前位置:首页 » 课程大全 » 计算机网络课程设计利用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