- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 TCP 创建了一个应用程序,当我在 127.0.0.1
的本地网络上使用它时,它工作得很好,但当客户端尝试从另一个网络连接到他时,服务器拒绝工作.
我不知道此错误意味着什么以及如何解决它,并且我无法理解应用程序只能在 LAN 上运行。
public class Reception {
InputStream inObjet = null;
BufferedReader inString = null;
ObjectInputStream recVec2i = null;
public Reception(Socket socket) {
try {
this.inObjet = socket.getInputStream();
this.inString = new BufferedReader(new InputStreamReader(socket.getInputStream()));
this.recVec2i = new ObjectInputStream(inObjet);
} catch (IOException ex) {
Logger.getLogger(Reception.class.getName()).log(Level.SEVERE, null, ex);
}
}
public Vecteur2i recevoir() {
Vecteur2i to = new Vecteur2i();
try {
to = (Vecteur2i) recVec2i.readObject();
} catch (IOException | ClassNotFoundException ex) {
Logger.getLogger(Reception.class.getName()).log(Level.SEVERE, null, ex);
to = new Vecteur2i(1000, 1000);
}
return to;
}
public String recevoirString() {
String chaine = "";
try {
chaine = inString.readLine();
} catch (IOException ex) {
Logger.getLogger(Reception.class.getName()).log(Level.SEVERE, null, ex);
}
return chaine;
}
public void fermerReception() {
try {
inString.close();
} catch (IOException ex) {
Logger.getLogger(Reception.class.getName()).log(Level.SEVERE, null, ex);
}
try {
inObjet.close();
} catch (IOException ex) {
Logger.getLogger(Emission.class.getName()).log(Level.SEVERE, null, ex);
}
try {
recVec2i.close();
} catch (IOException ex) {
Logger.getLogger(Reception.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
这里有一个异常(exception):
avr. 22, 2015 9:33:33 PM Snake.Reception recevoir Grave: null java.io.EOFException at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2597) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1316) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) at Snake.Reception.recevoir(Reception.java:41) at Snake.Partie.cycleDeJeu(Partie.java:55)
问候,
最佳答案
当其中一个或多个被缓冲时,您不能通过同一个套接字混合不同类型的流,并且 BufferedInputStream
和 ObjectInputStream
都被缓冲。缓冲区会互相“窃取”数据。在您的情况下,您应该通过对象流执行所有 I/O。它具有基于字符串的方法。
关于java - 在互联网上使用程序时,ObjectInputStream$BlockDataInputStream.peekByte,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29807378/
我使用 TCP 创建了一个应用程序,当我在 127.0.0.1 的本地网络上使用它时,它工作得很好,但当客户端尝试从另一个网络连接到他时,服务器拒绝工作. 我不知道此错误意味着什么以及如何解决它,并且
我是一名优秀的程序员,十分优秀!