jjzjj

ServerSocket

全部标签

java - 两个 android 设备之间的 TCP 连接(即使使用 NAT)

我正在做一个允许用户在线玩的android应用程序。目前,我使用TCP服务器:当两个人连接时,服务器负责在两个客户端之间转发数据包。我想用带有谷歌应用引擎的javaservlet替换我的服务器。这个新服务器将仅用于连接两个玩家。它会以这种方式工作:玩家A打开服务器套接字,然后将连接详细信息发布到服务器。当玩家B想与A对战时,他向服务器询问A的端口号,然后他直接连接到A。问题是如果玩家A在NAT后面,我不确定它是否会起作用。当玩家A打开服务器套接字时,这会打开其192.168.x.y地址的一个端口,但它是否向盒子请求端口转发?我认为它不会...所以两个问题:即使有NAT或防火墙,是否可以

java - RMI 运行时何时断开客户端连接?

我想知道连接是如何处理的?客户端是否应该显式调用以释放RMI资源?请回答有关自定义套接字和默认RMI套接字的问题。 最佳答案 WhendoesRMIruntimedisconnectclientconnections?只要喜欢,服从各种RMIsystemproperties和sun.rmisystemproperties.Iwanttoknowhowconnectionsarehandled?RMI运行时系统不可见。ShouldtheclientmakeexplicitcallstoreleaseRMIresources?没必要。R

java - setout 文件不会根据日期每天生成

我有一个应用程序,它一直在监听一个端口,如果有任何请求,它会处理并发回响应。我已将程序的System.out.println重定向到一个文本文件。我希望该文件每天都推出。但我没有在凌晨12点看到推出。有时推出会发生,有时日志会附加到昨天的文件本身。下面给出了代码片段。importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.PrintStream;importjava.net.ServerSocket;importjava.text.SimpleDateFormat;importjava.util.Da

swift - 我想在 swift 中使用 outputStream.write() 通过输出流发送 Int

我必须通过输出流发送字节数组的长度,下面是我使用的代码,但出现此错误:"Cannotconvertvalueoftype'UnsafePointer'toexpectedargumenttype'UnsafePointer'"withUnsafePointer(to:&len){(pointer:UnsafePointer)->VoidinoutputStream.write(UnsafePointer(pointer),maxLength:4)}如果有人能告诉我我哪里出错了或建议替代方法。 最佳答案 首先,如果要按主机顺序向Out

Python 套接字编程 - 错误的文件描述符错误

我正在尝试创建一个简单的服务器,并在IDLE中不断收到以下错误:File"C:\Python27\lib\socket.py",line202,inacceptsock,addr=self._sock.accept()File"C:\Python27\lib\socket.py",line170,in_dummyraiseerror(EBADF,'Badfiledescriptor')error:[Errno9]Badfiledescriptor这是我的代码。我已经尝试了解原因,它与关闭其中一个套接字然后尝试再次使用它有关,但我真的不明白我应该如何修复它。任何和所有的帮助表示赞赏。:)

java - 停止 ServerSocket accept() 循环线程

我正在实现一个非常基本的API以更好地控制ServerSocket和套接字,但我遇到了一个非常奇怪的问题,由于我缺乏线程知识而无法解决。让我解释一下。在我的SocketStreamReceiver类中,我使用辅助线程通过ServerSocket#accept()监听新套接字。有两种方法:客户端可以使用start()和stop()来启动(创建线程并开始使用accept()进行监听)和停止(关闭ServerSocket并销毁线程)我的SocketStreamReceiver.您将如何实现stop()方法?请记住,stop()可以在doSomething()内部调用,在由start()启动的

Python 服务器和游戏客户端 : Message overload?

我正在用Python编写一个游戏服务器,在GameMaker中使用FaucetNetworking插件编写一个游戏客户端(尽管这应该无关紧要)。每次玩家移动时,客户端都会向服务器发送一条UPDATEXY消息,并且在客户端中有一个消息聊天的东西。当有2个客户端连接到服务器时,客户端的消息似乎重载了(在运行时,聊天消息看起来更慢,玩家落后于实际其他玩家所在的位置)。我相信这是因为客户端无法以消息流入的速度处理消息,所以我在客户端中实现了一个功能,它只会将所有消息转储到接收缓冲区中,并忽略它们。这似乎行得通,但玩家会猛烈地抽动。这个问题是否有任何“干净的修复”,或者这是我从一开始就做错的基本

java - 检查到 ServerSocket 的传入连接

有没有办法检查到ServerSocket的传入连接,这样我的服务器就不会在等待某人连接时停止。我需要类似的东西try{if(server.thereisarequest()){Socketsocket=server.accept();}} 最佳答案 你确定要这个吗?呈现代码后,只有一个线程在等待。运行另一个线程来处理接受的连接,这样您的服务器就不会停止。你也可以使用java非阻塞异步I/O(nio和nio2),但无论如何在后台都有一个线程值类。 关于java-检查到ServerSocke

java - 使用环回测试环境

我想在同一台物理机器上运行同一台服务器的两个实例。这两台服务器将监听相同的端口,例如12345。我尝试在127.0.0.1上运行一台服务器,在127.0.0.2上运行另一台服务器。这两个服务器基本上将使用相同的端口发送和接收消息,但在不同的环回地址上运行。我不知道我是否在正确的路径上设置这个测试环境?不知何故,我无法设置这个测试环境。我正在使用java开发服务器。 最佳答案 如果指定两个不同的接口(interface),则可以将两个服务器绑定(bind)到同一个端口:ServerSockets1=newServerSocket(po

java - TCP 客户端套接字填满堆

使用java套接字库,我看到当服务器接受tcp连接但不从缓冲区读取数据时,同时我们的客户端继续抽取大量数据,客户端堆大小增长到最大可用并压垮客户端应用。无论如何我可以限制套接字缓冲区大小或使用该堆的任何内容,如果违反它,连接将被终止?这样客户端可以检测到客户端检测到连接消失了,客户端;this.socket=newSocket(server,port);this.socket.setKeepAlive(true);this.outwriter=newOutputStreamWriter(this.socket.getOutputStream());this.outwriter.writ