Java 客户端-服务器通信,无法让客户端向服务器发送信息
这是我的服务器端代码:Java 客户端-服务器通信,无法让客户端向服务器发送信息,java,network-programming,client-server,Java,Network Programming,Client Server,这是我的服务器端代码: package server; import java.io.*; import java.net.*; public class Serverside { public static void main (String [] args) throws Exception { System.out.println("The server is running."); int clientnumber = 1; ServerSocket s
package server;
import java.io.*;
import java.net.*;
public class Serverside
{
public static void main (String [] args) throws Exception
{
System.out.println("The server is running.");
int clientnumber = 1;
ServerSocket server = new ServerSocket(9090);
try
{
while (true)
{
new cserver(server.accept(), clientnumber++).start();
}
}finally
{
server.close();
}
}
private static class cserver extends Thread
{
private Socket socket;
private int clientnumber;
public cserver(Socket socket, int clientnumber)
{
this.socket = socket;
this.clientnumber = clientnumber;
log("New connection with Client: " + clientnumber + " at " + socket);
}
private void log (String message)
{
System.out.println(message);
}
public void run()
{
try
{
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
//Message for Client
out.println("Hello, Client# " + clientnumber + ".");
out.println("Input Line\n");
while(true)
{ //System.out.println("Reading from Client\n");
String input = in.readLine();
// out.println(input);
if (input == null)
break;
out.println(input);
}
}catch (IOException e)
{
log("Error handling in client#" + clientnumber + ": " + e);
}finally
{
try
{
socket.close();
}catch (IOException e)
{
log("Could not close socket");
}
log("Connection with Client# " + clientnumber + " closed");
}
}
}
}
package client;
import java.io.*;
import java.net.*;
public class clientside
{ public static void main (String [] args) throws IOException
{
Socket myclient = new Socket("localhost", 9090);
BufferedReader in =
new BufferedReader(new
InputStreamReader(myclient.getInputStream()));
PrintWriter out = new PrintWriter(myclient.getOutputStream(), true);
out.print("Hello server, end session\n");
for(int i=0;i<=2;i++)
{
String input = in.readLine();
System.out.println(input);
}
System.out.println("It is done");
myclient.close();
}
}
这是我的客户端代码:
package server;
import java.io.*;
import java.net.*;
public class Serverside
{
public static void main (String [] args) throws Exception
{
System.out.println("The server is running.");
int clientnumber = 1;
ServerSocket server = new ServerSocket(9090);
try
{
while (true)
{
new cserver(server.accept(), clientnumber++).start();
}
}finally
{
server.close();
}
}
private static class cserver extends Thread
{
private Socket socket;
private int clientnumber;
public cserver(Socket socket, int clientnumber)
{
this.socket = socket;
this.clientnumber = clientnumber;
log("New connection with Client: " + clientnumber + " at " + socket);
}
private void log (String message)
{
System.out.println(message);
}
public void run()
{
try
{
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
//Message for Client
out.println("Hello, Client# " + clientnumber + ".");
out.println("Input Line\n");
while(true)
{ //System.out.println("Reading from Client\n");
String input = in.readLine();
// out.println(input);
if (input == null)
break;
out.println(input);
}
}catch (IOException e)
{
log("Error handling in client#" + clientnumber + ": " + e);
}finally
{
try
{
socket.close();
}catch (IOException e)
{
log("Could not close socket");
}
log("Connection with Client# " + clientnumber + " closed");
}
}
}
}
package client;
import java.io.*;
import java.net.*;
public class clientside
{ public static void main (String [] args) throws IOException
{
Socket myclient = new Socket("localhost", 9090);
BufferedReader in =
new BufferedReader(new
InputStreamReader(myclient.getInputStream()));
PrintWriter out = new PrintWriter(myclient.getOutputStream(), true);
out.print("Hello server, end session\n");
for(int i=0;i<=2;i++)
{
String input = in.readLine();
System.out.println(input);
}
System.out.println("It is done");
myclient.close();
}
}
包客户端;
导入java.io.*;
导入java.net。*;
公共类客户端
{公共静态void main(字符串[]args)引发IOException
{
Socket myclient=newsocket(“localhost”,9090);
BufferedReader in=
新的BufferedReader(新的
InputStreamReader(myclient.getInputStream());
PrintWriter out=新的PrintWriter(myclient.getOutputStream(),true);
out.print(“Hello服务器,结束会话\n”);
对于(int i=0;i这只是一个bug。当您将Serverside.java中的第65行更改为:
System.out.println(输入);
和clientside.java中的第16行:
out.println(“你好服务器,结束会话”);
它可以工作。所以在服务器端用“System.out”代替“out”,用“println”代替“\n”在客户端。您没有套接字将数据发送到服务器,数据应该如何传输?感谢您的快速回复,但很抱歉,我对这一点非常陌生,但您介意解释一下您的意思吗。我想Printwriter会将数据发送到服务器。我应该如何解决问题?有什么提示吗?我猜您的代码不完整,行BufferedReader in=new BufferedReader(new
突然结束):-)很抱歉,网站没有让我发布这么大的一行,所以我忘了按enter键并将其放在下一行,这一点现在已经解决了,但代码仍然不起作用。我注意到了这一点,并对我的愚蠢狠狠地瞪了一眼,怒气冲冲地冲出家门,但谢谢:)