当前位置: 首页 > 面试题库 >

将Chars写入Java套接字时,fsockopen 10053错误

凤安然
2023-03-14
问题内容

对,

我正在尝试用PHP编写一个wee脚本,该脚本会将游戏内聊天程序包发送到Minecraft。

//Deliberately low timeout
$mc = fsockopen("localhost", 25565, $errno, $err, 3);

现在,如果连接成功,那么我将发送2个“数据包”。

带有整数3的单个字节,用于告知Minecraft它应作为Packet3Chat“数据包”处理传入的网络流量:

fwrite( $mc, strrev( pack( "C", 3 )  ) );

这似乎可以正常运行**。

所需的第二个“数据包”是字符串的长度,为带符号的short。

$my_string = "Hello World!";
//119 character limit on Minecraft chat messages
$processed_string = substr($my_string, 0, 119);
fwrite($mc, strrev( pack( "s", strlen( $processed_string ) ) ) );

这似乎也可以正常工作**。

现在剩下要做的就是发送实际的字符串,如chars。

我尝试使用分割字符串,str_split并同时使用这两个字符单独发送每个字符:

//Signed char
fwrite($mc, strrev( pack( "c", $character ) ) );

//Unsigned char
fwrite($mc, strrev( pack( "C", $character ) ) );

而且我也尝试了通过发送这些方法的整个字符串而不破它,但我一直没能成功地打印出所收到的字符readChar()System.out.println只是打印一个空行),我得到一个
FWRITE错误10053 在在发送字符的某一点-即由EOFException抛出readChar()

我正在Windows 7上运行修改后的Minecraft服务器,并且在同一台计算机上使用XAMPP运行PHP5.x。

有什么想法为什么连接会被“软件关闭”?以及为什么它只在发送字符/字符串时而不在发送字节/短时关闭?

**是的,我曾经用来System.out.println验证Minecraft收到的数据。


问题答案:

10053是WSAECONNABORTED的winsock错误代码。
可以在http://www.chilkatsoft.com/p/p_299.asp找到对该错误情况的“可理解”的解释。



 类似资料:
  • 我正在尝试在java中使用httpPost请求(通过MultipartEntityBuilder)上传文件。但是我得到了一个软件导致的连接中止:套接字写入错误。 这是我的httpPost正文(在wireShark中) 代码端为: 和错误: 有什么想法吗?谢谢大家。

  • 我转向你,在这件事上我一直把头撞在墙上。 我正在做一个小的socket编程,我可以看到当我把它放出来。println(“…”)while循环之前的代码行(in.readLine())它工作正常,但我需要它位于循环内部。 说清楚一点,我没有看到任何错误。我只是看不到此应用程序的客户端显示文本。它看起来好像在工作,但事实并非如此。此外,我也不控制该应用程序的客户端,它由通过TCP连接到此套接字侦听器应

  • 这几天又有一个挑战砸到了我的头。我正在尝试用Java创建一个FTP服务器,它应该能够与FileZilla FTP客户端通信。代码不是最好的,因为我尝试了很多方法来找出发生了什么。 这里的FileZilla日志从德语翻译 目前的主要问题是建立真正的联系。套接字已连接,我可以向客户端发送至少一条消息,但没有机会获取客户端输入,例如PASV、USER和PASS。 对于错误消息/打印堆栈:

  • 我正在尝试使用java套接字构建一个简单的多客户端聊天应用程序。我这样做的方式是,让一个客户机类连接到一个服务器类,该服务器类等待客户机连接,并创建一个新线程来处理该客户机(套接字连接在那里被读取和写入)。客户端还读取和写入到该线程的套接字连接。但是,当客户机写入套接字的输出流时,服务器不会响应。这里发布了一个类似的问题: 您可以同时写入套接字输入和输出流吗? 这里的一个答案是,只要在单独的线程上

  • 问题内容: 我正在编写一个Java套接字程序来从服务器读取数据,我无法控制服务器,以下是协议的约定, 2字节:幻数 2字节:数据长度 N字节:ASCII字符串数据有效载荷 大尾数表示幻数和数据长度 例如:如果我的请求是“ command / 1 / getuserlist”,如何构造以上协议的请求匹配并将响应读回到List 我是套接字编程的新手,也不知道如何构建我的请求并读回响应。 有人可以指导我

  • 我使用HttpClient4.4发送get和post请求。并且我刚刚创建了一个httpclient的simpile包装器以方便使用: 当我使用这个类发送post请求时。奇怪的事情发生了: 第一次,我向服务器发送一个post请求,一分钟后就可以了,我向服务器发送一个同样的请求,也可以了。但几分钟后,我发出了一个同样的请求,有些不对劲: 但是,我仍然向服务器发送一个相同的请求,它又可以了。 每次我按照