草庐IT

tcp-accept

全部标签

java - android: TCP 连接性能

我有一个PC服务器和一个安卓客户端;我的android客户端启动到服务器的套接字连接。当我连接到服务器时,我也从服务器接收数据到android客户端;这是我的代码:Socketsocket=null;DataOutputStreamout=null;DataInputStreamin=null;InputStreaminputStream=null;OutputStreamoutputStream=null;...publicvoidconnectToTCP(){try{socket=newSocket(HOST_ADDRESS,PORT);socket.setSoTimeout(30

c# - TCP 服务器未正确读取固定大小的消息

我正在使用C#将传感器数据从Android设备发送到TCP服务器。android客户端以32字节的固定大小块发送数据。在服务器中,我读取了数据,预计它会以完整的形式出现,但由于TCP是一种流协议(protocol),一些消息到达服务器时分为两部分。我知道这一点,因为我可以使用名为SocketSniff的软件观看它。问题是我不知道如何在我的服务器上处理它。我找到的所有示例都使用NetworkStream.Read(),在这个方法中,我必须传递一个字节数组来存储读取的数据、一个偏移量和要读取的字节数。这个字节数组必须有一个已知的大小,在我的例子中是32。我不知道到达我的服务器的邮件的实际大

java - 安卓 TCP 客户端。服务器仅在进程停止后接收消息

这个问题在这里已经有了答案:JavaSocketwhyservercannotreplyclient(4个答案)关闭3年前。我有一个用Java编写的简单TCP服务器,我正在尝试为Android编写一个简单的TCP客户端,它将与本地机器上运行的TCP服务器进行通信。我可以让服务器接收消息,但奇怪的是它只在我通过Eclipse中的“设备”窗口停止应用程序进程后才接收消息。在Android客户端上,我有主UI线程,其中包含用于输入IP地址和端口号的字段(这一切工作正常,所以我不包括它的代码)。单击连接按钮时,它会启动一个新的ASyncTask来执行TCP套接字工作。这是ConnectionT

C# 监听 TCP 端口

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭4年前。Improvethisquestion我想监听一个TCP端口。场景:SIP服务器和客户端程序。SIP服务器可能使用端口5010监听并建立多个连接。客户端通过端口5010从他的电脑连接到服务器。当在该端口上收到数据包时,必须在客户端PC上触发一个事件。有什么想法可以从哪里开始吗?

Eclipse TCP/IP Monitor 有两个端口

我正在尝试使用TCP/IP监视器来监视请求。但是,我看到有两个端口正在使用中。一个是应用端口[8080]和另一个监控端口[9833]。谁能告诉我,为什么会有两个不同的端口?当我启动应用程序时,它会在9833而不是8080启动。为什么会发生这种变化? 最佳答案 Eclipse监控是通过捕获发送到应用程序(主机和端口)的所有请求,为您将其转储到Monitor控制台,然后将原始请求转发到应用程序来完成的。受监控的应用程序本身会将其响应返回到Eclipse(它是其预期的客户端),Eclipse也会将其转储到监控控制台上。现在,eclipse

使用 TCP/IP 套接字检查有多少数据已传送到目的地

我正在开发一个需要向客户端发送大量数据的服务器应用程序。但是,客户端可能随时断开连接,在这种情况下,套接字上的send()/write()将返回错误。我想检查在客户端断开连接之前实际传送了多少数据,以便能够在客户端重新连接时从中断的地方继续发送数据。是否可以使用套接字API进行检查? 最佳答案 不,套接字API不会为您提供此信息。事实上,一般情况下不可能知道这一点。根据连接失败的特定方式,一侧的TCP堆栈通常无法知道有多少数据成功到达另一侧。它唯一能知道的是确认了多少数据,这不是一回事。并且考虑到TCP/IP之外的其他事情可能已经失

parsing - 带有 HTTP 数据的 TCP 段

我正在实现一个http解析器;作为http数据的指标,我正在搜索'HTTP/1.?流中的CRLF'。TCP层可以将应用程序提供的缓冲区切割成适合通过网络传输的block。是否可以让http数据(例如GEThttp://www.google.com/index.htmlHTTP/1.1CRLF)不紧跟在TCPheader之后?此外,是否可以跨TCP段拆分“GET..”查询?谢谢。标记 最佳答案 Isitpossibletohavehttpdata(e.g.GEThttp://www.google.com/index.htmlHTTP/

c# - TCP 连接的可靠性如何?

我一直在编写服务器-客户端应用程序。服务器是用c#编写的,客户端代码是用java编写的。通信协议(protocol)是TCP。使用tcp传输文件时,可能会发送丢失的数据。换句话说,tcp是否保证数据正确到达。(我是否应该发送此文件的header信息以检查错误,如文件大小、哈希等) 最佳答案 可靠的tcp传输os的包排序。例如,您的tcp消息分为三个包A、B和C。您的客户端收到A,包B丢失,然后客户端收到C。在流中,您将仅获得包A,包C被存储,一旦包B被您的客户端重新传输和接收,在流中您将获得包B,然后是C。如果包B通过另一种方式路由

建立连接后,Python TCP socket.recv() 什么都不返回

我正在尝试实现最基本的pythonTCP服务器。Windows8,Python2.7,防火墙关闭。代码来自这里:https://wiki.python.org/moin/TcpCommunication如果我通过pythonrepl执行客户端操作(socket(...)、connect(...)、send(...)),一切正常,即服务器正确调用recv时阻塞。但是,如果我通过python脚本运行完全相同的代码(无论是否在Windows命令行显式调用python.exe),recv都会立即返回,但没有数据。我在其他地方读到这意味着它是一个无效的套接字,但我不确定这意味着什么或如何检查它。

linux - epoll TCP 边缘触发最后一次 read(2) 调用的必要性

给定一个非阻塞TCP套接字,如果调用read(sock,buf,bufLen)返回一个值bufLen,然后等待边缘触发的EPOLLIN事件是否安全?还是我必须再次调用read以确保它为零或EAGAIN?在我的测试中,当我删除最后一个调用时,一切都保持正常,我只是想知道它是否在任何地方或Linux源代码中得到保证,以及我是否可以摆脱额外的调用。 最佳答案 你的问题在man7epoll中得到了回答。如您所见,它取决于套接字类型(数据包/流):Q9使用EPOLLET标志(边沿触发行为)时,是否需要连续读/写文件描述符直到EAGAIN?A9