bitsocketbitsocket

频道:社保知识 日期: 浏览:0

大家好,今天来为大家解答bit socket这个问题的一些问题点,包括bitsocket也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

本文目录

如何用SOCKET实现两台计算机之间的通讯不停地弹出socket error#10054,connection reset by peerC#中关于SOCKET类和TCPCLIENT类端口(port)和插口(socket)的区别是什么如何用SOCKET实现两台计算机之间的通讯两部分代码,一个server,一个client。

server端代码:

#include"stdio.h"

#include"Winsock2.h"

#include"iostream"

#include"string"

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

//definehostIPandusableport.

#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

//arraytostorethedatathatserverfeedback.

charcRecvBuf[100];

while(true){

std::cin>>requestStr;

//sendtofunctionisusedtosendprogramedatatotheserver

sendto(socClient,requestStr,strlen(requestStr)+1,0,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

recv(socClient,cRecvBuf,strlen(cRecvBuf)+1,0);

std::cout<<cRecvBuf<<std::endl;

}

//closethesocketandcleanupthewsadata

closesocket(socClient);

WSACleanup();

//return0;

}

不停地弹出socket error#10054,connection reset by peer使用有效的软件杀毒

如果不行就试试下列方法:

1.用系统还原到没有生成此文件的日期。

2.用系统自带的工具,开始——所有程序——附件——系统工具——选择磁盘清理或者磁盘碎片整理程序,两个都试试。

3.开始——运行——输入“msconfig”——选择“诊断启动”(以免不相关的程序加载导致正在使用删不了),重启机子,按F8,进入安全模式,找到文件夹以及文件,直接删除。

4.如果上述说明都不能解决,那就把你有用的文件转移到其他的盘里面去,(比如E盘里有用的文件转移到D盘,然后在D盘点右键格式化后,好了以后再转移回来),把此盘格式化,注意,要选择普通格式化,千万不要选择快速格式化,不然白忙活了,因为普通格式化除了把该盘的所有程序全删除以外,同时还在自动检测硬盘的坏扇区(硬盘是由N个扇区组成,多少根据大小而定),从而避免硬盘下次使用坏的扇区来存放数据,而快速格式化只是负责删除该盘的数据,并没有达到诊断的效果。

好了,这样做一定能解决问题,还有什么不明白的可以留言给我。。

C#中关于SOCKET类和TCPCLIENT类这个是网上找的资料,看下对你有没有帮助....

Socket和TcpClient有什么区别

回答:

"网络编程中,使用Socket和TcpClient有什么区别"

http://community.csdn.net/Expert/TopicView.asp?id=4971812

本人回贴1:

-----------------------------

物理层:HUB,网线

链路层:MAC,ARP,交换机

网络层:IP,ICMP,IGMP,路由器

传输层:TCP,UDP

会话层:HTTP,SMTP,FTP,POP3

表示层:SOAP,SSL

应用层:WebService的Method

-------------------------------

Socket是对网络层操作

TcpClient是对传输层操作

ASP.NET是对会话层操作

你可以用Socket访问IIS中的ASP.NET的页面,不过传输层,会话层的转换就要你自已用代码实现了

问:

你可以用Socket访问IIS中的ASP.NET的页面,不过传输层,会话层的转换就要你自已用代码实现了

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

上面的话是什么意思?

本人回贴2:

如果你用Socket访问IIS,要做如下考虑:

网络层:

使用什么网络层协议,如IPV4还是IPV6;如果开发路由器也要考虑这个问题

传输层:

你要使用那种传输层协议,比如是TCP.

会话层:

你要使用那种会话层协议,如HTTP.

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

也就是说你可以用

Socket类.Send方法发送如下字串的二进制到IIS

//

GET/?T1=234&T2=789&B1=%CC%E1%BD%BBHTTP/1.1

Accept:image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,application/vnd.ms-excel,application/vnd.ms-powerpoint,application/msword,*/*

Accept-Language:zh-cn

Accept-Encoding:gzip,deflate

User-Agent:Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.0;.NETCLR1.0.3705)

Host:192.168.0.2:81

Connection:Keep-Alive

//

你会收用Receive到如下数据:

//

HTTP/1.0200OK

MIME_version:1.0

Content_Type:text/html

Content_Length:N

[inputtype=button]

//

然后你可以将此数据解析成一个HTML页的按钮

///////////////////////////////////////////////////////////

上面的操作就是:

网络层-----会话层,用Socket访问IIS中的ASP.NET的页面

传输层,会话层的转换自已用代码实现了

但是要这样做,WEB开发人员会死的很惨,所以WEB开发只要实现[会话层-----会话层]就可以了

他要要做的只是[form]到IIS,Response到客户端。

而到了WebService的Method开发时,Response都不用考虑了

本人回贴3:

现在再说[Socket和TcpClient有什么区别]

Socket:网络层

TcpClient:传输层

当你只考虑:主机,端口,数据传输时,用TcpClient,或UdpClient

当你要考虑:IP封包,路由,IP数据包时,用Socket

还有NET中的Socket类提供了一些对Socket操作的高级封装,但同时无法实现一些Socket底部操作。

目前在NET中不建议使用Socket,就如现在不建议使用NET开发DirectX一样,虽然可以做到

等路由器,交换机都使用WinCE,集成Net类时,也许我上面的话会过时

端口(port)和插口(socket)的区别是什么插口包含了端口,因为插口=(IP地址,端口号)。插口是TCP连接的端点。

插口(socket)有多种意思。当使用API时,插口往往被看成是操作系统的一种抽象,这时,插口和一个文件描述符是很相似的,并且是应用编程接口API的一部分。插口由应用程序产生,并指明它将由客户还是服务器来使用。当应用进程创建一个插口时,要指明该插口使用的端口号。

端口则是应用层服务的的一种代号,它用来标志应用层的进程。端口是一个16bit的整数。各种服务器使用的端口号都是保留端口号,以便使客户能够找到服务器。例如万维网服务器使用的端口号是80。

在发送数据时,应用层的数据通过端口向下交付到运输层。在接收数据时,运输层的数据通过适当的端口向上交付到应用层的某个应用程序。

谢谢你看完我的回答

关于本次bit socket和bitsocket的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

理财年化收益20%

一个部位练几个动作

二十世纪九十年代中期股市

floor

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 931614094@qq.com 举报,一经查实,本站将立刻删除。