就着么简单马?我里面有个writer但就是不行啊 import java.net.*; import java.io.*; public class Server { static Socket socketarray[] = new Socket[100]; public Server(int port) throws IOException { ServerSocket serversocket = new ServerSocket( port ); while (true) { Socket socket = serversocket.accept(); new multithread( socket ); } }
public static void main(String args[]) throws Exception { int port = 8888; new Server(port); } }class multithread extends Thread { Socket client; public multithread(Socket socket ) { this.client = socket; start(); } public void run() { try { BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream())); PrintWriter out = new PrintWriter(client.getOutputStream(), true); out.println( "您已经连接服务器...可以" ); boolean flag = false; while (!flag) { String line = in.readLine(); if (line == null) flag = true; else { System.out.println("接收到客户机发来的消息: "+line); out.println("服务器回应消息: " + line); if (line.trim().equals("BYE")) flag = true; } } client.close(); } catch(Exception e){} } }
import java.net.*;
import java.io.*;
public class Server
{
static Socket socketarray[] = new Socket[100]; public Server(int port) throws IOException
{
ServerSocket serversocket = new ServerSocket( port );
while (true)
{
Socket socket = serversocket.accept();
new multithread( socket );
}
}
public static void main(String args[]) throws Exception
{
int port = 8888;
new Server(port);
}
}class multithread extends Thread
{
Socket client;
public multithread(Socket socket )
{
this.client = socket;
start();
}
public void run()
{
try
{
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out = new PrintWriter(client.getOutputStream(), true);
out.println( "您已经连接服务器...可以" );
boolean flag = false;
while (!flag)
{
String line = in.readLine();
if (line == null) flag = true;
else
{
System.out.println("接收到客户机发来的消息: "+line);
out.println("服务器回应消息: " + line);
if (line.trim().equals("BYE")) flag = true;
}
}
client.close();
}
catch(Exception e){}
}
}
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
in.readLine();把这两句话加到你想键盘输入的地方
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String serverIn = in.readLine();再将serverIn放到server端中的out输出流中,就像while (!flag)
{
String line = in.readLine();
if (line == null) flag = true;
else
{
System.out.println("接收到客户机发来的消息: "+line);
out.println("服务器回应消息: " + line);
if (line.trim().equals("BYE"))flag = true;
}
}
中一样,用
out.println(serverIn );
就可以输出到客户端了哦
楼主是想实现一个点对点的通讯程序对吧?
要求大概是,A在stream里输入的东西,B能看到,并且B也能够通过键盘输入,也同样让A收到自己输入的信息;
但很遗憾,dos下只是单前端进程的,如果你想实现这样的一个小聊天程序,那只能在applet,或swing这样有area概念的表现端做了~~~~
PS:也想做这样一个东西的 :)
public void run() {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out = new PrintWriter(client.getOutputStream(), true);
out.println( "您已经连接服务器...可以" );
boolean flag = false;
while (!flag) {
//在这个循环里加一发送本地消息的语句就可以了.out.println("xxxx");
//不过本地接收输入的应该是另一线程
String line = in.readLine();
if (line == null)
flag = true;
else {
System.out.println("接收到客户机发来的消息: "+line);
out.println("服务器回应消息: " + line);
if (line.trim().equals("BYE"))
flag = true;
}
}
client.close();
}
catch(Exception e){}
}
}