【发布时间】:2014-07-22 00:03:23
【问题描述】:
基本上我想要做的是让客户端(具有未知 IP)通过套接字连接到服务器,并让服务器每隔 x 秒将 BufferedImage 发送回客户端。
我了解如何使用已知的客户端 IP 来完成此操作,而不是未知的客户端 IP。一个简单的例子会很棒,谢谢。
已知 IP 的示例:
BufferedImage scr = getImage();
Socket sock = new Socket(ip, 123456); //unknown IP
byte[] mybytearray = new byte[1024];
InputStream is = sock.getInputStream();
FileOutputStream fos = new FileOutputStream(scr);
BufferedOutputStream bos = new BufferedOutputStream(fos);
int bytesRead = is.read(mybytearray, 0, mybytearray.length);
bos.write(mybytearray, 0, bytesRead);
bos.close();
sock.close();
另外,如果有人能告诉我我可以在哪里循环以继续发送文件,那就太棒了。
【问题讨论】:
-
必须知道服务器 IP 才能连接。客户端连接到已知的服务器IP后,就可以将信息传递给客户端了。
-
1.如果您不知道 IP,则无法寻址数据包。 2. 为什么客户端连接服务器后不知道IP?
-
服务器IP已知。正在连接的客户端不是。
-
@user3613821 我认为你搞错了整个服务器客户端的工作方式。在客户端尝试连接之前,服务器不知道客户端。客户端知道它需要连接到哪里,而服务器正在监听连接。
-
你能说明你将如何使用已知的客户地址吗?也许只需要做一个小改动。
标签: java sockets fileoutputstream