import java.net.*;
import java.io.*;
public class Server {
private static final int SERVER_PORT = 9000; //指定侦听端口
public Server(){
try {
//创建监听器,监听端口
ServerSocket server=new ServerSocket(SERVER_PORT);
System.out.println("监听中");
//创建套接字,建立输入输出流
Socket s=server.accept();
//接受消息
InputStream in=s.getInputStream();//读取发送过来的数据
BufferedReader br=new BufferedReader(new InputStreamReader(in));
System.out.println("aaaaaaaaaaaaaaaaaaa");
System.out.println("服务器接收消息:"+br.readLine());//调试的时候这里不能读取
OutputStream out=s.getOutputStream();//发送数据
PrintWriter pw=new PrintWriter(out,true);
pw.write("服务器发送:消息已经收到");
in.close();
out.close();
br.close();
pw.close();
s.close();
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String []args)
{
new Server();
}
}
//客户端类--------
import java.net.*;
import java.io.*;
public class Client {
private final static int PORT=9000;
public Client(){
try {
Socket s=new Socket("hyh",PORT);
InputStream in=s.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(in));
OutputStream out=s.getOutputStream();
PrintWriter pw=new PrintWriter(out,true);
pw.write("客户端消息");
System.out.println("客户端接受消息"+br.readLine());//运行到这里也停止了
in.close();
out.close();
out.close();
br.close();
s.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new Client();
}
}
import java.io.*;
public class Server {
private static final int SERVER_PORT = 9000; //指定侦听端口
public Server(){
try {
//创建监听器,监听端口
ServerSocket server=new ServerSocket(SERVER_PORT);
System.out.println("监听中");
//创建套接字,建立输入输出流
Socket s=server.accept();
//接受消息
InputStream in=s.getInputStream();//读取发送过来的数据
BufferedReader br=new BufferedReader(new InputStreamReader(in));
System.out.println("aaaaaaaaaaaaaaaaaaa");
System.out.println("服务器接收消息:"+br.readLine());//调试的时候这里不能读取
OutputStream out=s.getOutputStream();//发送数据
PrintWriter pw=new PrintWriter(out,true);
pw.write("服务器发送:消息已经收到");
in.close();
out.close();
br.close();
pw.close();
s.close();
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String []args)
{
new Server();
}
}
//客户端类--------
import java.net.*;
import java.io.*;
public class Client {
private final static int PORT=9000;
public Client(){
try {
Socket s=new Socket("hyh",PORT);
InputStream in=s.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(in));
OutputStream out=s.getOutputStream();
PrintWriter pw=new PrintWriter(out,true);
pw.write("客户端消息");
System.out.println("客户端接受消息"+br.readLine());//运行到这里也停止了
in.close();
out.close();
out.close();
br.close();
s.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new Client();
}
}
看工具栏,有一个#号的“选择java”,把代码粘贴到code之间!!!
通常是用
while( br.readLine()!=null) 的循环来读取输入流的
import java.net.*;public class EchoServer {
private int port = 1;
private ServerSocket serverSocket;
public EchoServer()throws IOException{
serverSocket = new ServerSocket(port);
System.out.println("服务器启动");
}
public String echo(String msg){
return "echo:" + msg;
}
private PrintWriter getWriter(Socket socket)throws IOException{
OutputStream socketOut = socket.getOutputStream();
return new PrintWriter(socketOut,true);
}
private BufferedReader getReader(Socket socket)throws IOException{
InputStream socketIn = socket.getInputStream();
return new BufferedReader(new InputStreamReader(socketIn));
}
public void service(){
while(true){
Socket socket = null;
try{
socket = serverSocket.accept();
System.out.println("New connection accepted"+socket.getInetAddress()+":"+socket.getPort());
BufferedReader br = getReader(socket);
PrintWriter pw = getWriter(socket);
String msg =null;
while((msg = br.readLine())!=null){
System.out.println(msg);
pw.print(echo(msg));
BufferedReader localReader = new BufferedReader(new InputStreamReader(System.in));
String msg_2 = null;
while((msg_2 = localReader.readLine())!=null){
pw.println(msg_2);
break;
}
if(msg.equals("bye")) break;
}
}catch(IOException e){
e.printStackTrace();
}finally{
try{
if(socket!=null)socket.close();
}catch(IOException e){e.printStackTrace();}
}
}
}
public static void main(String args[])throws IOException{
new EchoServer().service();
}
}
这是一个典型的例子,参考书上找的