51,410
社区成员
发帖
与我相关
我的任务
分享import java.io.*;
import java.net.*;
public class Server {
private int port=8000;
private ServerSocket serverSocket;
public Server()throws IOException{
serverSocket=new ServerSocket(port);
System.out.println("服务器启动");
}
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);
int a=0;
while((a=br.read())!=0){
System.out.println(a);
pw.println(a);
if(a==0)
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 Server().service();
}
}
import java.io.*;
import java.net.*;
import java.util.*;
public class Client {
private String host="localhost";
private int port=8000;
private Socket socket;
public Client()throws IOException{
socket=new Socket(host,port);
}
public static void main(String args[])throws IOException{
new Client().talk();
}
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 talk()throws IOException{
try{
BufferedReader br=getReader(socket);
PrintWriter pw=getWriter(socket);
BufferedReader localReader=new BufferedReader(new InputStreamReader(System.in));
int a=0;
while((a=localReader.read())!=0){
pw.println(a);
System.out.println(br.read());
if(a==0)
break;
}
}catch(IOException e){
e.printStackTrace();
}finally{
try{socket.close();}catch(IOException e){e.printStackTrace();}
}
}
}


//客户端
public void talk()throws IOException{
try{
BufferedReader br=getReader(socket);
PrintWriter pw=getWriter(socket);
BufferedReader localReader=new BufferedReader(new InputStreamReader(System.in));
int a=0;
while((a=localReader.read())!='0'){
pw.println((char)a);// 以字符方式发送
System.out.println((char)br.read());//以字符方式显示
if(a=='0')
break;
}
}catch(IOException e){
e.printStackTrace();
}finally{
try{socket.close();}catch(IOException e){e.printStackTrace();}
}
}
//服务器端
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);
int a=0;
while((a=br.read())!='0'){
System.out.println((char)a);//以字符方式显示
pw.println((char)a);//以字符方式发送
if(a=='0')
break;
}
}catch(IOException e){
e.printStackTrace();
}finally{
try{
if(socket!=null)socket.close();
}catch(IOException e){e.printStackTrace();}
}
}
}
//--------------------------服务器端 service方法
//--------------------------
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 s=null; //按行读字符串.
while(!(s=br.readLine()).equals("0")){
System.out.println(s);
pw.println(s);
}
break;//退出外层循环。接收到"0"结束。
}catch(IOException e){
e.printStackTrace();
}finally{
try{
if(socket!=null)socket.close();
}catch(IOException e){e.printStackTrace();}
}
}
}
//---------------- 客户端talk()方法
//----------------
public void talk()throws IOException{
try{
BufferedReader br=getReader(socket);
PrintWriter pw=getWriter(socket);
BufferedReader localReader=new BufferedReader(new InputStreamReader(System.in));
//int a=0;
String s=null; //按字符串读入,发送.
while(!(s=localReader.readLine()).equals("0")){
System.out.println("----s is "+s);
pw.println(s);
System.out.println(br.readLine()); //按字符串接收.
}
pw.println(s);//键盘输入"0",输出后程序退出。
}catch(IOException e){
e.printStackTrace();
}finally{
try{socket.close();}catch(IOException e){e.printStackTrace();}
}
}