Tag: 套接字

设置UDP套接字的源IP

我有一个UDP套接字绑定到INADDR_ANY侦听我的服务器上的所有IP数据包。 我通过相同的套接字发送回复。 现在服务器自动select使用哪个IP作为发送数据包时的源IP,但我希望能够自己设置输出源IP。 有没有办法做到这一点,而不必为每个IP创build一个单独的套接字?

如何在boost asio中设置阻塞套接字的超时时间?

有没有办法取消挂起的操作(没有断开连接)或设置增强库函数的超时? 即我想设置一个阻塞套接字在升压ASIO超时? socket.read_some(boost :: asio :: buffer(pData,maxSize),error_); 例如:我想从套接字中读取一些信息,但是如果10秒钟过去了,我想抛出一个错误。

如何检查TcpClient连接是否closures?

我正在玩TcpClient,我试图弄清楚如何使连接属性在断开连接时显示为false。 我试过了 NetworkStream ns = client.GetStream(); ns.Write(new byte[1], 0, 0); 但是如果TcpClient断开,它仍然不会显示出来。 你将如何去使用TcpClient?

socket.shutdown与socket.close

我最近看到了一些看起来像这样的代码(当然,sock是一个套接字对象): sock.shutdown(socket.SHUT_RDWR) sock.close() 调用套接字closures然后closures它的目的是什么? 如果有所作为,这个套接字被用于非阻塞IO。

Python中的进程间通信

什么是在两个不同的python进程之间进行进程间通信的干净优雅的方式? 我目前在操作系统中使用命名pipe道,但感觉有点哈克。 我重写了我的东西与dbus服务,它的工作,但似乎通过SSH会话远程运行的代码,现在试图初始化X11这似乎完全不必要的事情,我想要做的事情(他们不是GUI相关)。 所以也许dbus有点太重了。 我正要重新devise使用套接字,但它似乎很低层次,所以我认为可能有一个更高级别的模块,我可以导入和使用,我根本不知道名称,我想我应该问的SO第一.. 我的要求是能够运行python foo.py并让该进程像守护进程一样执行它,并能够使用python foo.py –bar发送消息。 后者调用应该只是发送一个消息到现有的进程并终止,可能返回代码0成功或其他失败(所以一些双向通信将被要求)。

绑定多播(UDP)套接字是什么意思?

我在具有多个networking接口的主机之间使用组播UDP。 我正在使用boost :: asio,并且被2个操作接收器所迷惑:绑定,然后连接组。 为什么在绑定期间需要指定一个接口的本地地址?何时join每个组播组? 姐姐问题关于组播端口:因为在发送过程中,你发送到一个多播地址和端口,为什么在订阅一个多播组时,你只指定地址,而不是端口 – 在混淆调用指定的端口绑定。 注意:“join-group”是setsockopt(IP_ADD_MEMBERSHIP)一个包装,可以在同一个套接字上多次调用它,以订阅不同的组(通过不同的networking?)。 因此,在每次订阅一个组时,抛弃绑定调用并指定端口是非常有意义的。 从我看到的,总是绑定到“0.0.0.0”并指定join组时的接口地址,效果很好。 困惑。

java.net.SocketException:软件导致连接中止:recv失败

我一直无法find一个适当的答案,究竟是什么下面的错误意味着: java.net.SocketException: Software caused connection abort: recv failed 笔记: 这个错误是不经常的,不可预测的; 虽然得到这个错误意味着所有未来的URI请求也将失败。 唯一有效的解决scheme(也是偶尔)是重新启动Tomcat和/或实际的机器(在这种情况下是Windows)。 URI是肯定可用的(通过要求浏览器进行提取来确认)。 相关代码: BufferedReader reader; try { URL url = new URL(URI); reader = new BufferedReader(new InputStreamReader(url.openStream()))); } catch( MalformedURLException e ) { throw new IOException("Expecting a well-formed URL: " + e); }//end try: Have a stream String buffer; StringBuilder result = new StringBuilder(); […]

如何立即终止在套接字IO操作上的线程阻塞?

在Java的上下文中,我创build了一个新的线程来读取networkinginput时,打开一个GUI窗口,当我closures窗口,我想释放套接字资源,立即终止线程。 现在我正在使用setSoTimeout方法,但我不想等待超时exception。 有人可以提出一些build议吗? 谢谢!

如何使用java套接字实现客户端和服务器之间的传输文件

我已经实现了简单的TCP服务器和TCP客户端类,可以将消息从客户端发送到服务器,消息将在服务器端转换为大写,但是如何实现从服务器到客户端的传输文件并从客户端上传文件到服务器。 以下代码是我得到的。 TCPClient.java import java.io.*; import java.net.*; import java.util.Scanner; class TCPClient { public static void main(String args[]) throws Exception { int filesize=6022386; int bytesRead; int current = 0; String ipAdd=""; int portNum=0; boolean goes=false; if(goes==false){ System.out.println("please input the ip address of the file server"); Scanner scan=new Scanner(System.in); ipAdd=scan.nextLine(); System.out.println("please input the port number of the […]

套接字编程多客户端到一台服务器

你如何处理多个客户端连接到一台服务器? 我有这个LogServer.java import javax.net.ssl.*; import javax.net.*; import java.io.*; import java.net.*; public class LogServer { private static final int PORT_NUM = 5000; public static void main(String args[]) { ServerSocketFactory serverSocketFactory = ServerSocketFactory.getDefault(); ServerSocket serverSocket = null; try { serverSocket = serverSocketFactory.createServerSocket(PORT_NUM); } catch (IOException ignored) { System.err.println("Unable to create server"); System.exit(-1); } System.out.printf("LogServer running on port: […]