草庐IT

SOCK_STREAM

全部标签

c - 在 Linux 上的 C 程序中从套接字描述符获取 struct socket*、struct sock *

我正在Linux(非特权)上开发C程序。是否可以从套接字描述符中获取对structsocket或structsock的引用?谢谢。 最佳答案 如果您在用户模式下工作(例如,不是内核模式),您不能直接操作内核结构(包括structsock)。如果您确实需要访问这些内核结构,则需要编写在内核模式下运行的代码(可能在内核模块中)。 关于c-在Linux上的C程序中从套接字描述符获取structsocket*、structsock*,我们在StackOverflow上找到一个类似的问题:

c# - System.IO.Stream.Read 卡住

我与服务器端建立了HTTP连接,使用System.IO.Stream.Read读取HTTP请求正文消息。问题是每隔几分钟服务器就会卡在Read语句上,并且在达到套接字超时或客户端关闭连接之前不会继续。intbytesRead=0;while(bytesRead如果流没有contentLength变量指定的数据量,就会发生这种情况。事实并非如此,因为当使用WireShark跟踪tcp流时,我看到整个消息正文(由contentLength指定)已到达服务器计算机。它仅在第一次“使用”while循环时发生,即仅在第一次流中没有“contentLength”字节数可在一次尝试和while中读取

c - socket()中 "protocol"为SOCK_DGRAM或SOCK_STREAM时是否需要指定 "type"?

来自APUE#includeintsocket(intdomain,inttype,intprotocol);地点:type可以是SOCK_DGRAM、SOCK_RAW、SOCK_SEQPACKET、SOCK_STREAM和protocol可以是IPPROTO_TCP,IPPROTO_UDP,...SOCK_DGRAM可以与IPPROTO_UDP一起工作,但不能与IPPROTO_TCP一起工作吗?SOCK_STREAM可以与IPPROTO_TCP一起工作,但不能与IPPROTO_UDP一起工作吗?如果答案是肯定的,是否意味着当type为SOCK_DGRAM或SOCK_STREAM时,我

c# - 如何判断 Stream 何时结束?

如何在不使用BinaryWriter/Reader的情况下向接收方嵌入或告知TCP流的大小?必须有一种快速的方法让它知道它是否已经到达终点,当然,除非终止连接。tcp.GetStream().Write(ms.GetBuffer(),0,(int)ms.Length);我就是这样发送的,但接收是困难的部分。编辑:这对我不起作用:while(tt1.GetStream().DataAvailable){su=Image.FromStream(tt1.GetStream());} 最佳答案 不,没有办法(快或慢)告诉您何时到达网络流的末

php - 如何为 set socks 5 或 php stream_socket_client 的 http 代理制作上下文数组

我不确定如何在php中为流套接字的tcp代理配置流上下文参数。我发现并测试了以下代码,但它不适用于流套接字。$context=stream_context_create(array('http'=>array('proxy'=>'tcp://'.$proxy,)));$srvHandle=stream_socket_client("tcp://{$this->server}",$errno,$errstr,30,STREAM_CLIENT_CONNECT,$context);if($srvHandle===false)$this->LogError("failedtoconnectwi

linux - 从 struct tcp_sock 获取 TCP 端口号

如何获取Linux内核中tcp_sock结构的TCP端口号?tcp_sock的实例在tcp_recvmsg()的上下文中。 最佳答案 在tcp_recvmsg()中,structtcp_sock对象派生自参数structsocksk。您可以执行inet_sk(sk)->inet_sport来获取TCP数据包的目标端口。inet_sk(sk)->inet_dport应该得到数据包的源端口。 关于linux-从structtcp_sock获取TCP端口号,我们在StackOverflow上找

c# - 通过 TCP 发送大对象 : "End of Stream encountered before parsing was completed"

每当我尝试从NetworkStream中反序列化double列表时,我总是收到SerializationException:EndofStreamencounteredbeforeparsingwascompleted我有一个简单的客户端服务器架构:我的TcpTransportClient包装了TcpClient的功能,我使用了两种基本方法:Send(发送消息)和Receive(阻塞直到收到消息)。Send函数接收一个Message,使用BinaryFormatter将其序列化并通过NetworkStream发送字节.publicvoidSend(Messagemessage){if(

php - 使 stream_socket_server 在第一次收到数据包后保持功能

我试图通过PHP的stream_socket_server()使tcp套接字服务器创建和维护持久的双向通信。Shortversionofquestion:howtohavetcpservercreatedwithstream_socket_server()stayingalive-notfailingtoreceivedataafterfirstsuccessfuldatareceptionwhichisinmycaseonesinglecharactertypedinterminalaftertelnetcommand?长版-我期望实现的目标只是为了说明,请查看使用smtp服务器远程

如果多次调用,来自 TCP 客户端的 PHP stream_get_contents 会挂起

我正在编写一个程序,使用php中的stream_socket_client连接到tcp服务器。我的问题是,如果我在执行任何额外的fwrites之前回显$client对象的内容,页面就会挂起。目前,如果我在调用stream_get_contents之前发送我的所有请求,它会起作用,但是一旦我调用stream_get_contents,它就像客户端不再响应一样?如果有任何帮助,我将不胜感激。**编辑这是我正在使用的API:https://www.onlinenic.com/cp_english/template_api/download/ONLINENIC_API2.0.pdf**编辑//

c# - 如何根据当前服务器找到最适合读取或写入 Stream 的缓冲区大小

我正在编写一个服务器,它将准备好并写入大量文件/数据库。我在很多地方都使用了Stream读写函数,其中我使用8192作为缓冲区大小。我也在读取来自TCP套接字的大量输入。我不知道将要部署该服务的VM的配置是什么。是否有任何内置函数可以用来确定最适合我的服务器的缓冲区大小? 最佳答案 我自己也经常想知道这一点。但最终我认为没有适用的一般规则。它始终取决于您的特定需求。根据经验,如果您的缓冲区更大,您需要更少的文件系统或数据库往返,一般来说,这对大多数情况来说是最好的。但是,您的系统在不进行其他应用程序的情况下可以一次将多少数据读入内存