草庐IT

socket通信

全部标签

C#实现TCP和UDP通信

文章目录UDP发送UDP接收TCP发送TCP接收C#在命名空间System.Net.Sockets中对伯克利套接字提供了良好的封装,提供了完善的TCP和UDP通信功能。从编程的角度出发,TCP和UDP最大的区别是,TCP存在TcpClient和TcpLinster两个对象用于信息的传递,二者一发一收,十分完备。而UDP则只有一个类UdpClient,换言之,UDP通信是不分服务端和客户端,通信双方对等。UDP发送至少在形式上,UDP比TCP更简单,所以先从UDP讲起。考虑到通信那肯定是有发有收才行,如果只用C#自己,那么肯定得上个多线程什么的才能跑通。为了避免问题复杂化,故推荐使用这款NetA

vb.net - TCP客户端到服务器通信

我只需要在windows窗体vb.net上寻找一个简单的tcpclient/listner示例。我是一个新手,微软tcpclient/listner类的例子不是我想要的。我只想让tcpclient发送一条消息,让tcplistener获取该消息并将消息发送回“我收到了您的消息”?一点帮助就好了。我有一些代码,但只是将消息发送到服务器,而不是从服务器返回到客户端。任何帮助都将不胜感激。 最佳答案 TCP通信被称为基于流的,这意味着它不处理任何数据包。因此,接收到的消息可以是部分的,也可以集中在一起。例如,您可以发送:Hello!How

sockets - 如何检查 TCP 发送缓冲区的容量以确保数据传递

我想向我的TCP接口(interface)添加传送确认。非阻塞写入可以填充发送缓冲区,但如果连接失败,数据可能永远不会到达-同时写入报告数据已收到(由本地套接字)。如果我向堆栈添加额外的确认,我可以验证是否收到了每条数据。我认为ftp可以做到这一点。但我不能借用任何人的代码并且宁愿不实现ack/resend,特别是因为TCP已经做了大部分。我认为如果我能在每次write()之后验证套接字发送缓冲区是否为空,就可以完成。如果没有更多的数据,它应该已经全部交付。我不介意清空缓冲区的延迟。编辑:我知道TCP/socket实现因系统而异,但如果有Berkeley或Linux解决方案,我可能可以

sockets - 是否有一个程序可以通过套接字将数据发送到服务器以进行测试?

我有一个简单的套接字服务器,它等待消息并响应。我该如何测试呢?是否有客户端应用程序或其他东西可以帮助我将特定端口上的一些数据发送到服务器,并查看输出?远程登录? 最佳答案 简单的telnet客户端非常适合此类测试。您还可以在Telnet或Raw连接模式下尝试PuTTY。两者都允许您选择要连接的端口。还有类似MicrosoftNetworkMonitor的工具如果您无法直接控制(通过日志)通过线路发送的内容,那么它对于分析协议(protocol)的数据流非常有用。 关于sockets-是否

sockets - TCP 套接字上的长连接

你能帮忙吗?根据制造商的说法,我正在与需要长连接选项的设备集成。您知道如何做到这一点吗?这是我到目前为止在大多数情况下都有效的代码:publicAsynchronousSocketListener(IPEndPointendPoint,ILoglog){_EndPoint=endPoint;_log=log;Console.WriteLine(String.Format("Started:{0}:{1}",endPoint.Address,endPoint.Port));}publicvoidStartListening(){//Databufferforincomingdata.by

c socket发送大文件时出现broken pipe错误

我正在尝试使用C套接字发送文件。我已经使用pthread创建了一个服务器。服务器根据缓冲区的大小读取文件,并将读取的大小发送给客户端。它适用于小文件,但当我尝试发送大文件时,如mp3文件(超过5MB),它就不能正常工作。客户端再次发送请求,管道坏了。我的服务器在OSX上运行,我使用浏览器作为客户端。Whenhtmlfilehasmp3resourceastag,mp3sendsOK.(Icalledlocalhost:9999/index.html)butwhenIcallmp3filedirectly(e.glocalhost:9999/music.mp3),brokenpipeer

.net - 有没有办法通过 WCF 中的单个 TCP 连接进行真正的双向通信?

我有一个WCF服务器,它公开了一个接口(interface),该接口(interface)具有一个用于向客户端发送事件的回调接口(interface)。我宁愿不将回调接口(interface)上的所有方法都标记为“OneWay”,因为它会使错误跟踪和记录变得更加困难。客户端是用WinForms编写的,因此在对服务器的调用返回之前不会处理回调。(这是我想要的行为)我使用AsynchronousEg进行所有回调。BeginMyMethod(...),因此服务器不会阻塞等待客户端。然而,如果回调被发送到与向服务器发送请求相同的客户端,则TCPchannel会自行死锁,因为它似乎无法在客户端已

sockets - Winsock 阻塞套接字,多线程死锁

我使用这个复制器找到了我的一些代码中的死锁:if(isClient){Sendersender;Receiverreceiver;ConnectionPtrconnection=Connection::create(description);TEST(connection->connect());receiver.start();Sleep(100);sender.start();sender.join();}else{ConnectionPtrconnection=Connection::create(description);TEST(connection->listen());S

embedded - 用于嵌入式远程客户端和服务器的基于 GPRS 调制解调器的数据通信

对于基于SAGEMHiLoGPRS的数据通信,它具有TCP/IP堆栈,并且有两种连接方式:(1)使用基本的GPRS命令,然后通过ppp拨号将调制解调器连接到公共(public)网络/Internet之类的AT+CGDCONT=1,"IP","APN","0.0.0.0",0,0OKatd*99***1#CONNECT(2)使用GPRSattach然后使用TCPsocket命令如at&k3OKAT+KCNXCFG=0,"GPRS","APN","log","password",”0.0.0.0”,”0.0.0.0”,”0.0.0.0”OKAT+KCNXTIMER=0,60,2,70OKA

Ruby Sockets 查找消息的发送和接收时间

ruby中的套接字类是否有一个预定义的函数可以让我记录发送和接收消息的时间?此刻我正在发送或接收消息,然后立即记录时间。虽然这是有效的,但我想知道是否有人知道更好的方法?这是我目前的做法。这是基于我必须编写的ClientTCP类。服务器以类似的方式布置。defsend_mess@n.timesdo@client.print(@message)@sent_time_arr如果您能提供任何帮助,我们将不胜感激 最佳答案 抱歉,标准套接字库无法做到这一点。您可以尝试覆盖套接字类上的read()和write()方法,但您现在所做的似乎也有效