//SocketDemo客户端部分
import java.io.*;
import java.net.*;
public class SocketDemo{
Socket socket;
BufferedReader bufferedreader,in;
PrintStream printstream;
public SocketDemo(){
try{
socket=new Socket("127.0.0.1",8888);
bufferedreader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
printstream=new PrintStream(socket.getOutputStream(),true);
in=new BufferedReader(new InputStreamReader(System.in));
while(true){
String s=in.readLine();
printstream.print(s);
System.out.println(bufferedreader.readLine());
printstream.close();
in.close();
bufferedreader.close();
socket.close();
Thread.sleep(500);
}
}
catch(IOException e){
e.printStackTrace();}
catch(InterruptedException e){}
}
public static void main(String args[]){
new SocketDemo();
}
}
//SeverSocketDemo服务器部分
import java.io.*;
import java.net.*;
public class SeverSocketDemo{
ServerSocket serversocket;
Socket socket;
BufferedReader bufferedreader;
PrintStream printstream;
public SeverSocketDemo(){
try{
serversocket=new ServerSocket(8888);
socket=serversocket.accept();
printstream=new PrintStream(socket.getOutputStream(),true);
bufferedreader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
while(true){
String string=bufferedreader.readLine();
System.out.println(string);
printstream.print("Your message is arrival");
printstream.close();
bufferedreader.close();
socket.close();
Thread.sleep(500);
}
}catch(IOException e){System.out.println("客户端已经断开"+e);}
catch(InterruptedException e){System.out.println("线程出错");}
}
public static void main(String args[]){
new SeverSocketDemo();
}
}
问题是为甚吗 服务器部分不显示 客户端的字符串呢??????
import java.io.*;
import java.net.*;
public class SocketDemo{
Socket socket;
BufferedReader bufferedreader,in;
PrintStream printstream;
public SocketDemo(){
try{
socket=new Socket("127.0.0.1",8888);
bufferedreader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
printstream=new PrintStream(socket.getOutputStream(),true);
in=new BufferedReader(new InputStreamReader(System.in));
while(true){
String s=in.readLine();
printstream.print(s);
System.out.println(bufferedreader.readLine());
printstream.close();
in.close();
bufferedreader.close();
socket.close();
Thread.sleep(500);
}
}
catch(IOException e){
e.printStackTrace();}
catch(InterruptedException e){}
}
public static void main(String args[]){
new SocketDemo();
}
}
//SeverSocketDemo服务器部分
import java.io.*;
import java.net.*;
public class SeverSocketDemo{
ServerSocket serversocket;
Socket socket;
BufferedReader bufferedreader;
PrintStream printstream;
public SeverSocketDemo(){
try{
serversocket=new ServerSocket(8888);
socket=serversocket.accept();
printstream=new PrintStream(socket.getOutputStream(),true);
bufferedreader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
while(true){
String string=bufferedreader.readLine();
System.out.println(string);
printstream.print("Your message is arrival");
printstream.close();
bufferedreader.close();
socket.close();
Thread.sleep(500);
}
}catch(IOException e){System.out.println("客户端已经断开"+e);}
catch(InterruptedException e){System.out.println("线程出错");}
}
public static void main(String args[]){
new SeverSocketDemo();
}
}
问题是为甚吗 服务器部分不显示 客户端的字符串呢??????
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
class MyServer extends Frame {
TextArea ta;
TextField tf;
Socket s;
ServerSocket ss;
PrintWriter pw;
BufferedReader br;
public MyServer(){
super("模拟QQ 甲方");//调用父类,Frame的方法;
ta=new TextArea();
tf=new TextField();
this.add(ta);
this.add(tf,BorderLayout.SOUTH);//设置文本框的位置;
this.setSize(400,400);
ta.setEditable(false);//设置文本域的可编辑性;
this.setVisible(true);
try{
ss=new ServerSocket(2222);
s=ss.accept();//返回一个套接制,等待连接;
pw=new PrintWriter(s.getOutputStream());
br=new BufferedReader(new InputStreamReader(s.getInputStream()));
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
tf.addActionListener(new ActionListener(){//为文本框添加一个事件处理;
public void actionPerformed(ActionEvent e) {
//String str;
//str=tf.getText();
pw.println(tf.getText());
pw.flush();
ta.append("Server:"+tf.getText()+"\n");
tf.setText("");
}
});
while(true){//让文本域可以一直显示来自Client的信息;
ta.append("Client:"+br.readLine()+"\n");
}
}catch(Exception e){
System.out.println(e);
}
}
}
public class TestServer{
public static void main(String args[]){
MyServer ms=new MyServer();
}
}Client端:import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
class MyClient extends Frame{
TextArea ta;
TextField tf;
Socket s;
PrintWriter pw;
BufferedReader br;
public MyClient(){
super("模拟QQ 乙方");//调用父类的方法;
ta=new TextArea();
tf=new TextField();
try{
s=new Socket("192.168.1.52",2222);//Socket构造方法;
this.add(ta);
this.add(tf,BorderLayout.SOUTH);//设置文本框的位置;
this.setSize(400,400);
ta.setEditable(false);//设置文本框的可编辑性;
this.setVisible(true);
pw=new PrintWriter(s.getOutputStream());
br=new BufferedReader(new InputStreamReader(s.getInputStream()));
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
tf.addActionListener(new ActionListener(){//为文本框添加一个事件;
public void actionPerformed(ActionEvent e) {
//String str;
//str=tf.getText();
pw.println(tf.getText());
pw.flush();
ta.append("Client:"+tf.getText()+"\n");
tf.setText("");
}
});
while(true){//让文本域一直可以显示来自Server端的信息;
ta.append("Server:"+br.readLine()+"\n");
}
}catch(Exception e){
System.out.println(e);
}
}
}
public class TestClient{
public static void main(String args[]){
MyClient mc=new MyClient();
}
}
String s=in.readLine();
printstream.print(s);-==>改成printstream.print(s+"\n");加上行号结束符就行了,服务端的readLine才能读到一行