以下是客户端向服务器传送字符串,但服务器总接收不到,服务器的输入流总返回-1(即已到流末尾),求帮忙服务器端:
import java.net.*;
import java.io.*;
import javax.swing.*;public class Server extends JFrame
{
private JTextArea jtaLog;
Server()
{
jtaLog = new JTextArea();
add(jtaLog);
}
public void start()
{
try
{
ServerSocket server = new ServerSocket(8000);
jtaLog.append("服务器开启\n");
Socket client = server.accept();
BufferedReader clientReader = new BufferedReader(new InputStreamReader(client.getInputStream()));
char[] bufChars = new char[100];
int len = 0;
len = clientReader.read(bufChars)); //len是 -1.即已经到达流的末尾
System.out.println(len);
String message = new String(bufChars,0,len);
jtaLog.append(message + "\n");
}
catch(IOException ex)
{
ex.printStackTrace();
}
}
public static void main(String[] args)
{
Server frame = new Server();
frame.setTitle("服务器端");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400,300);
frame.setVisible(true);
frame.start();
}
}
客户端:import java.net.*;
import java.io.*;public class Client
{
Client()
{
try
{
Socket client = new Socket("localhost",8000);
BufferedWriter bufWriter = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
bufWriter.write("客户端");
client.close();
}
catch(IOException ex)
{
ex.printStackTrace();
}
}
public static void main(String[] args)
{
new Client();
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货