Tag: 套接字

什么可能导致“IO错误java.net.SocketException:select failed”?

我的笔记本电脑上运行的服务器程序,相同的路由器和相同的代码。 它工作正常,客户可以连接。 然而,当我将工作区复制到我的PC并运行它时,我得到了这个废话: IO错误java.net.SocketException:选择失败 这是代码…… public static void main(String[] args) { System.out.println(“running server!”); int nreq = 1; try{ ServerSocket sock = new ServerSocket(7331); for(;;){ Socket newsock = sock.accept(); System.out.println(“Creating thread…”); //Thread t = new ThreadHandler(newsock, nreq); //t.start(); nreq++; } } catch(Exception e) { System.out.println(“IO error ” + e); } 基本上什么可能导致这个错误(我在网上找不到有用的信息)在一台PC而不是另一台PC上发生? 它必须与PC本身有关。 我最困惑。 基本上它无法打开套接字? 这是完整的堆栈跟踪: java.net.SocketException: […]

一般的java服务器/客户端教程

我正在开发一种多玩家纸牌游戏,需要客户互相通信或一般服务器。 我之前从未这样做过,所以我需要一些方向或教程来实现这一目标。 到目前为止,我已经创建了本地的单人版游戏……

java socket全双工

是否可以让服务器和客户端具有1个套接字连接,并同时向两个方向发送数据? 我的意思是服务器和客户端同时读写(每个进程中有2个线程) 编辑:我需要“真正的”双向通信,而不是请求/响应类型的通信。 客户端和服务器都必须能够同时写入。 编辑2:上帝圣母! 有用。 傻傻的我在客户端/服务器之间因为在读者线程中写了一个死锁! :) 谢谢

代理后面的Java Socket编程

我写了一个TCP IP套接字程序,工作正常。 但是如果我的服务器或客户端落后于代理,我的套接字程序就不起作用。 那么如何克服这类问题呢。 谢谢Bapi

从socket读取json字符串

我有java服务器,我正在编写服务器从客户端读取命令, 用C#编写的客户端以json字符串的forms通过socket发送命令。 该命令看起来像这样 { “command”: “blah”, “key1”: “value1”, “key2”: “value3”, “key3”: “value4”, } json字符串每次都可以有不同数量的key-val对,因此没有静态计数来测量json命令中的行数。 以下是C#客户端如何将json字符串发送到java服务器 String json = JsonConvert.SerializeObject(map, Formatting.Indented); streamWriter.WriteLine(json); streamWriter.Flush(); 我想在用android编写的java代码中读取json。 它看起来像下面所示, 它正确地读取json行但是在读完json命令的最后一行后它会阻塞我不确定知道该命令已经结束的正确方法是什么。 serverSocket = new ServerSocket(4444); clientSocket = serverSocket.accept(); InputStream inStream = clientSocket.getInputStream(); InputStreamReader inStreamReader = new InputStreamReader(inStream); BufferedReader buffReader = new BufferedReader(inStreamReader ); String input = “”; while((input = buffReader.readLine())!= null) […]

配置Java Socket以在断开连接时快速失败?

我在我的服务器上有一个监听端口,我正在使用Java类和Socket接口连接,即 Socket mySocket = new Socket(host,port); 然后我抓住一个OutputStream ,在autoflush模式下使用PrintWriter进行装饰,我笑了 – 除非监听端口关闭。 然后我明白了 tcp4 0 0 *.9999 *.* LISTEN tcp 0 0 127.0.0.1.45737 127.0.0.1.9999 CLOSE_WAIT 我似乎无法在程序中检测到问题 – 我尝试在套接字上使用isConnected()方法,但它似乎并不知道连接已关闭。 我想在下次尝试写入Socket时意识到这个问题,以便我可以尝试重新连接并报告问题。 有什么建议吗? 谢谢大家

如何告诉java使用特定的传出ip接口来获取http请求?

有没有人知道在java中强制传出的http请求通过特定(逻辑)ip地址的快速方法? 我正在考虑使用Apache HTTP客户端(http组件的一部分),这肯定有足够的方法来实现它,但API看起来并不简单。 有没有人用它做过类似的事情? 谢谢。

HttpClient:如何从现有连接获取底层套接字?

我正在使用HttpClient 4.02通过代理创建连接(使用CONNECT方法)来连接到远程服务器的连接。 HttpClient非常方便,但我是API的新手,无法看到如何获取隧道连接的底层Socket 。 以下代码取自: http : //svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.0.1/httpclient/src/examples/org/apache/http/examples/client/ClientExecuteProxy.java // make sure to use a proxy that supports CONNECT HttpHost target = new HttpHost(“target.server.net”, 443, “https”); HttpHost proxy = new HttpHost(“some.proxy.net”, 8080, “http”); // general setup SchemeRegistry supportedSchemes = new SchemeRegistry(); // Register the “http” and “https” protocol schemes, they are // required by the default […]

尝试与Web服务通信时遇到“无路由到主机”错误

我正在尝试与笔记本电脑上的Web服务进行通信,并使用Android手机作为客户端。 我试图做一个简单的登录function,但是,只要客户端尝试与Web服务进行通信,就会在Eclipse上的DDMS中弹出此错误。 我可以通过我的家庭网络访问网络服务,但是当我在学校时却无法访问网络服务。 如果您可能会问这个问题,我的sch中的IP地址是172.22.XX.XX. 虽然我知道是私有IP地址,但即使我的Android手机连接到同一个网络,它仍然无法与我的笔记本电脑上运行的网络服务进行通信。 谁能告诉我如何解决这个问题 10-20 15:00:42.875:ERROR / AndroidRuntime(6728):fillInStackTrace():java.net.SocketException:无主机路由 这是完成工作的function: public String[] getPassword(String loginID){ String[] temp = null; SoapObject request = new SoapObject(NAMESPACE, “GetPassword”); PropertyInfo quotesProperty = new PropertyInfo(); quotesProperty.setName(“LoginID”); quotesProperty.setValue(loginID); quotesProperty.setType(String.class); request.addProperty(quotesProperty); envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet = true; envelope.setOutputSoapObject(request); String result = “”; HttpTransportSE httpRequest = new HttpTransportSE(URL); httpRequest.debug = true; try […]

IPC:为每个请求连接或保持套接字打开?

我打算使用套接字(本地TCP)在两个进程(本地运行)之间进行通信。 一个进程将充当服务器,但两个进程都异步地向彼此发送消息。 我应该在进程的生命周期内保持套接字连接打开,还是为每个请求重新连接? 如果我保持本地套接字打开可能会出现任何问题吗?