草庐IT

ServerSocket

全部标签

Java 网络编程 —— ServerSocket 详解

构造ServerSocketServerSocket的构造方法有以下几种重载形式ServerSocket()throwsIOExceptionServerSocket(intport)throwsIOExceptionServerSocket(intport,intbacklog)throwsIOExceptionServerSocket(intport,intbacklog,InetAddressbindAddr)throwsIOException参数port指定服务器要绑定的端口(即服务器要监听的端口),参数backlog指定客户连接请求队列的长度,参数bindAddr指定服务器要绑定的I

java - ServerSocket,Tomcat 作为服务和端口

我有一个提供嵌入式Jetty的应用程序(Java)。默认情况下,我尝试获取Jetty服务器的端口8080。如果端口正在使用中,我会随机尝试一个:try{socket=newServerSocket(def);}catch(IOExceptione){socket=newServerSocket(0);}问题是我有一个客户在8080上运行一个Tomcat。如果关闭tomcat,一切都很好。如果Tomcat作为服务运行,并且我的应用程序想要获取一个端口,它会获取默认端口(8080),尽管tomcat正在那里监听。如果浏览localhost:8080/test.html,我会从Tomcat得

Windows posix 套接字性能

我正在寻找有关Windows网络编程的信息。主要是如何获取单个可执行文件来应对1000个连接。我们在unix上使用select()FD_ISSET等,这工作起来非常快。在Windows上,这些API非常糟糕。FD_SET慢很多,但即使解决这个问题,Windows也比HPUX慢很多。我正在寻找一个win32API调用,我可以使用它来代替不需要太多CPU/时间的select()调用。目前我们将50%的时间(和CPU)花在select()上,而在unix上,花在send()和recv()上的时间是我所期望的。谢谢尼尔 最佳答案 您可能正在

python 套接字 : winerror 10056

我已经通读了这篇对python套接字的介绍:http://docs.python.org/3.3/howto/sockets.html这是我的服务器importsocketserversocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)serversocket.bind(("localhost",8000))serversocket.listen(5)whileTrue:(client,addr)=serversocket.accept()data=serversocket.recv(1024)print(data.decode

java - 多次绑定(bind)到同一个端口?

为什么以下代码不抛出“java.net.BindException:地址已在使用:JVM_Bind”异常?importjava.net.InetSocketAddress;importjava.net.ServerSocket;publicclassTest{publicstaticvoidmain(String[]args)throwsException{try(ServerSocketsocket1=newServerSocket();ServerSocketsocket2=newServerSocket();ServerSocketsocket3=newServerSocket(

java - 阻止应用程序绑定(bind)到已绑定(bind)的套接字

如何防止Java应用程序绑定(bind)到另一个进程已在Windows上绑定(bind)到的套接字?我遇到一个问题,我的Java应用程序正在监听端口80。该应用程序可以正常启动并且没有报告任何异常。我不明白为什么我无法连接到端口80。其他端口工作正常。我检查了netstat是否有其他进程在80上监听并找到了Skype。我不认为这是可能的,但经过一些研究,我猜Skype正在使用SO_REUSEADDR选项进行监听。在这种状态下,接受申请是不确定的。我希望我的Java应用程序在此实例中因绑定(bind)异常(或其他)而失败。如果我可以通过Java访问该选项,我似乎可以使用SO_EXCLUS

java - 如何取消阻塞在 ServerSocket.accept() 上阻塞的线程?

我有一个带有这段代码的服务器线程:publicvoidrun(){try{ServerSocketserver;EneaLog.printLog("Serverisrunning.");server=newServerSocket(this.portnumber);while(true){newEneaServerConnection(server.accept(),this.project,stopped).start();if(stopped){EneaLog.printLog("Serversafe-shutdowncompleted.");EneaLog.printLog("H

java - 为什么 dtruss 不显示此 JNI 代码中的 select 系统调用?

在MacOS上调查这个JDK错误时,我遇到了我不理解的系统调用跟踪输出:Tomcatstartupfailsdueto'java.net.SocketExceptionInvalidargument'onMacOSX简短版本:在MacOS上,JDK使用select()而不是poll()。因此,如果分配了超过1024个文件描述符,我们推断NET_Timeout中的select()调用失败,导致出现带有“无效参数”消息的SocketException。但是,当我跟踪系统调用时,我没有看到select()系统调用的证据,也没有看到任何失败并设置EINVAL的调用,因此我认为这是一个潜在原因。

java - 在 Java 中查找空闲端口

我需要在Java应用程序中找到空闲端口。为什么下面的代码不起作用?它总是返回0。publicintfindFreePort(){intportNumber=newInetSocketAddress(0).getPort();returnportNumber;}newInetSocketAddress()的Java文档说:创建一个套接字地址,其中IP地址是通配符地址,端口号是指定值。有效的端口值介于0和65535之间。端口号为零将使系统在绑定(bind)操作中选择临时端口。 最佳答案 实际上,您输出的是您在构造函数中指定的端口成员。所

java - 多线程 Socket 通讯 Client/Server

我完成了一个运行良好的客户端/服务器套接字通信程序。现在我想弄清楚如何做到这一点,以便我可以同时拥有到服务器的多个客户端连接。我环顾四周,似乎有不止几种不同的方法可以做到这一点。所以我来这里是想向你们寻求帮助/建议。我的服务器:publicclassServer{privateServerSocketserverSocket=null;privateSocketclientSocket=null;publicServer(){try{serverSocket=newServerSocket(7003);}catch(IOExceptione){System.err.println("C