- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个基本代码,其中发送者向接收者发送消息,接收者打印该消息。我是一个天真的套接字程序员。我查看了各种帖子,但仍然无法解决这个问题。这是我的代码:
TCPServer.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Serializable;
import java.net.*;
import java.io.*;
import java.util.*;
import org.omg.CORBA.Any;
public class TCPServer {
public static void main(String args[]) throws IOException{
TCPServer tcpServer=new TCPServer();
ServerSocket serverSocket=new ServerSocket(8777);
Socket sock=serverSocket.accept();
BufferedReader inputSenderBuffer=new BufferedReader(new InputStreamReader(sock.getInputStream()));
DataOutputStream outputToSenderBuffer=new DataOutputStream(sock.getOutputStream());
outputToSenderBuffer.flush();
//outputToSenderBuffer.close();
char[] inputArray=new char[2000];
int i,lengthMessage;
int a=1;
System.out.println("We are here");
while(a<1000)
{
System.out.println("Inside this while loop");
String inputSender=inputSenderBuffer.readLine();
lengthMessage=inputSender.length();
for(i=0;i<lengthMessage;i++)
{
System.out.println("putting the received message into buffer");
inputArray[i]=inputSender.charAt(i);
System.out.println(inputArray[i]);
}
}
}
}
TCPClient.java
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.*;
public class TCPClient {
public static void main(String args[])
{
try {
Socket sock=new Socket("localhost",8777);
DataOutputStream outputToReceiverBuffer=new DataOutputStream(sock.getOutputStream());
System.out.println("Sending test message");
int i=1000;
while(i<1000)
{
outputToReceiverBuffer.writeBytes("1AAAAAAAAAA");
outputToReceiverBuffer.flush();
//outputToReceiverBuffer.close();
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Exception at the TCPServer.java console
Exception in thread "main" java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at TCPServer.main(TCPServer.java:31)
请帮我解决这个问题。
最佳答案
你没有写任何东西:
int i=1000;
while(i<1000)
而且你永远不会关闭套接字。因此,当发送者退出时,连接就会重置,瞧。
当你解决这个问题时,你正在阅读以下几行:
String inputSender=inputSenderBuffer.readLine();
但你没有写行:
outputToReceiverBuffer.writeBytes("1AAAAAAAAAA");
outputToReceiverBuffer.flush();
而不是使用 DataOutputStream.writeBytes()
你应该使用BufferedWriter.write()/newLine().
您也没有检查 readLine()
的结果for null,这表明对等方已关闭连接,因此您应该停止读取并关闭您的套接字。您应该依靠它而不是任意计数器来控制读取循环。
关于java - 线程中的异常 "main"java.net.SocketException : Connection reset at java. io.BufferedReader.readLine(来源未知),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35617579/
这个问题在这里已经有了答案: What could be the reason that `require` doesn't work in some places? (3 个回答) 6 个月前关闭。
我正在使用读取行从维基百科获取一些文本。但读取行仅返回列表,而不是我想要的文本。有什么方法可以使用替代方案或解决我的问题吗? public class mediawiki { public s
我正在编写一小段代码,其中涉及使用子进程运行一个脚本来监听一些实时数据 这是我的代码: def subscriber(): try: sub = subprocess.Pope
我已包括: #include "stdio.h" #include #include 我的编译器包含标志 -lreadline 但我仍然收到错误消息: fatal error: 'readl
使用 Term::Readline::readline 停止无限循环的正确方法是什么? ? 这样我一个都看不懂 0 #!/usr/bin/env perl use warnings; use stri
标题比我的实际目标更具体: 我有一个使用 GNU Readline 的命令行程序,主要用于命令历史记录(即使用向上箭头检索以前的命令)和其他一些细节。现在,程序的输出似乎散布在用户的输入中,有时是可以
在 ipython 中,如果我按“esc”,然后按“enter”(可能还有其他字符?),读行会中断。我无法再使用“向上”键搜索命令历史记录,并且某些命令(例如 control-K)失败。 有没有办法在
我在使用 readlines() 和 readline() 返回值时遇到问题,但在使用 read() 时却没有。任何人都知道这是怎么发生的?欣赏一下 with open('seatninger.txt
标题比我的实际目标更具体: 我有一个使用 GNU Readline 的命令行程序,主要用于命令历史记录(即使用向上箭头检索以前的命令)和其他一些细节。现在,程序的输出似乎散布在用户的输入中,有时是可以
我正在编写一个聊天客户端,它必须在接收用户输入的同时输出接收到的消息。 到目前为止,我已经 fork 成两个独立的进程,其中一个继续监听套接字连接并用 printf 写出接收到的字符串。另一个使用 r
我在 NetworkStream 上使用 StreamReader,我只想读取一行或多行,而另一个数据是 byte array(如文件数据)我不想在 StreamReader 中读取该文件数据,例如我
我遇到了这两个 API,用于在 C# 的简单控制台应用程序中读取用户的输入: System.Console.ReadLine() System.Console.In.ReadLine() 这是一个我试
yum 我的系统显示已安装 readline rlwrap-0.41]$ sudo yum install readline Loaded plugins: fastestmirror, presto
我尝试做 this tutorial在 Rust 中,到目前为止,我在将 C 库连接到 Rust 时遇到了很多问题。 C 等效代码: #include #include #include #in
我正在寻找 web Python的标题中提到的命令及其区别;但是,我并不满足于对这些命令有完整的基本理解。 假设我的文件只有以下内容。 This is the first time I am posi
你如何在 F# 中使用 Console.Readline?与 Console.Writeline 不同,当我调用它时,它并没有受到尊重。 最佳答案 如果你使用 let s = Console.Read
在一次面试中,面试官问我为什么 readline() 比 Python 中的 readlines() 慢很多? 我回答的是readlines()需要多次读取,需要更多的开销。 不知道我的回答对不对。
要在 OSX Lion 上完全运行 ipython 需要什么?我试图让 ipython 与 readline 一起工作,但没有成功。 我的做法: (在虚拟环境中) pip install ipytho
在 Nodejs 文档中,我看到: import EventEmitter from 'events'; import { readFile } from 'fs'; import fs, { rea
我写了一个简单的应用程序: #include #include #include #include int main() { char *user_input; while(u
我是一名优秀的程序员,十分优秀!