草庐IT

sockets - TCP端口如何绑定(bind)

任何人都知道端口号如何与套接字绑定(bind)的详细信息以及端口如何用于将传输层接收的数据包转发到正在读取该端口的套接字?谢谢。 最佳答案 应用程序使用bind()绑定(bind)到本地IP地址和端口功能。远程IP地址和端口由连接的另一端在建立连接时确定。在内核中,在建立tcp连接时,基于包括本地地址、本地端口、远程地址和远程端口的数据将套接字放入哈希表中。当传入的tcp段到达时,这些值从header中提取并用于在哈希表中查找相应的套接字。在Linux中,此查找发生在函数inet_lookup_established()中。.类似的

http - 提供二进制文件 (.swf) 的 Http 响应是什么样的?

我需要将本地主机上的文件提供给某个只接受httpURI-s的应用程序。然而,文件是动态生成的,我想避免写入磁盘,所以我决定使用QTcpServer编写一个简单的HTTP服务器。幸运的是,我什至找到了nicetutorial只是解释一下。但是,我不熟悉HTTP响应。我如何提供Flash文件?是否有特定的MIME类型?将header放在一起后,我是否只需将流转储到套接字就可以了? 最佳答案 您要查找的mime类型是:application/x-shockwave-flash你需要设置的是将内容类型设置为application/x-sho

c# - TCP Accept 循环的线程类型 : BackgroundWorker, Thread,或 ThreadPool

我正在编写一个TCP服务器,它的核心是一段由TcpListener很好地封装的相当标准的绑定(bind)-监听-接受代码。我在开发中运行的代码现在有效,但我正在寻找对我选择的线程模型的一些讨论://Setupthesocketlistener//*THIS*isrunningonaSystem.Threading.Thread,ofcourse.tpcListener=newTcpListener(IPAddress.Any,myPort);tpcListener.Start();while(true){Socketso=tpcListener.AcceptSocket();try{M

java - TCP 文件传输问题

我。简介我正在打开文件并从中读取,在读取时通过TCP套接字发送数据block。发件人代码byte[]buffer=newbyte[16384];while((in.read(buffer))>0){SendProtocol(newFileTransfer(sender,receiver,buffer);}收件人代码if(oinstanceOfFileTransfer)FileTransfertf=(FileTransfer)o;out.write(tf.getData);}二。问题在我通过TCP套接字发送协议(protocol)后,我查看正在发送的字节。它们都是独一无二的。但是在接收方

java - Android Java Socket Socket TCPIP 打开连接

我需要通过TCPIP连接到服务器。我找到了如何做到这一点,但这些例子并没有建立永久连接,它只是连接发送数据并断开连接。我需要保持连接打开以来回传递多个包。例如,我习惯于请求一个连接,然后有一个进程来监听传入的数据。像这样:连接确认连接发送数据接收数据……回到#3关闭连接。关于这个或更好的示例代码,有什么我可以阅读的吗? 最佳答案 从现在开始(ICS+),要建立网络连接,您将需要使用AsyncTask(或处理程序),除非您愿意移除限制(不可取!)。默认情况下,网络连接受主Activity线程的限制。这个AsyncTask可以解决问题(

c# - 通过 .Net Socket 发送/接收为串行通信构建的消息

我们已经完成了一些基本的TCP通信,但有几个问题。我们正在与TCP服务器通信,其中交易流程描述如下:ThesenderinitiatesthetransactionbysendinganSTX(ASCII0x02)character,thenwaitsfortherecipienttoreplybysendinganACK(ASCII0x06)character.AfteranACKisreceived,thesendertransmitsafour-byte,unsigned,big-endianintegerrepresentingthesizeofthemessagepayloa

tcp - 协议(protocol) header 中的十六进制值

为什么像TCP或UDP这样的协议(protocol)头在填充协议(protocol)头中的特定字段时通常使用十六进制表示?有什么特别的优势吗? 最佳答案 根据所讨论的字段(标志,例如SYNFINACKRSTURGPSH..),最简单的方法是使用位移算术(0x1)和OR|来设置字段。或与&现有领域的结果。十六进制比十进制更容易移位,而且通常比八进制更便于阅读。归根结底,无论是谁编写了您正在阅读的代码,都可能认为在这种情况下十六进制比十进制更容易理解,但这显然是主观的。您的意见可能会有所不同。:)

unicode - 通过 TCP 接收 Unicode 字符

要接收混合的unicode和ascii字符,我是否需要一个wchar_t缓冲区,或者它可以从char缓冲区解释,我想这意味着多字节? 最佳答案 TCP连接没有字符编码的概念。在TCP级别传输的数据只是一个字节流。很可能(因为您提到了混合的ASCII和Unicode字符),您指的是UTF-8编码的字符串。为了仅存储内容,您可以简单地使用char数组。 关于unicode-通过TCP接收Unicode字符,我们在StackOverflow上找到一个类似的问题: h

C++ TCP服务器类设计

我正在用C++(win32/linux)开发TCP服务器,它可以满足多个客户端的需求。服务器用于视频流。客户端向服务器请求视频,服务器从与摄像头连接的网关获取视频。我卡在了设计课上。我找到了三个课同行session和连接管理器。所以这里ConnectionMgr负责管理其他的Class。我想要你对此的反馈。Peer和session需要有什么信息;Peer和session是如何关联的哪些信息需要在这里建模。如何做session维护者。管理多个客户端需要线程,线程可能需要这些信息。请提供您的反馈,以便我可以升级我的设计。 最佳答案 从头

.net - Socket.BeginConnect 与 Socket.Connect

我想连接到Socket,但我发现了2种不同的连接方法:BeginConnect和Connect。有谁知道2之间的区别?BeginConnect是否也要求您调用EndConnect?套接字连接:http://msdn.microsoft.com/en-us/library/ych8bz3x.aspxSocket.BeginConnecthttp://msdn.microsoft.com/en-us/library/6aeby4wt%28VS.80%29.aspx使用一种方法比另一种方法有优势吗? 最佳答案 正如文档所述,Connect