网络编程TCP

 

package cn.hb.tcp;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

 
 public static void main(String [] args){
  
  try {
   //创建一个ServerSocket 在端口9865监听客户亲求
   ServerSocket ss =new ServerSocket(9865);
   
   //accept 方法阻塞,直到有客户连接时返回一个Socket对象
   Socket socket =ss.accept();
   
   
   //向客户端传输数据,约定“over”代表数据传输结束
   PrintWriter out = new PrintWriter(socket.getOutputStream());
   
   out.println("欢迎访问服务器!");
   out.println("over");
   out.flush();
   
   
   
   //读取客户端传递过来的数据
   BufferedReader br =
    new BufferedReader(
      new InputStreamReader(socket.getInputStream()));
   
   String line;
   
   while((line = br.readLine()) !=null){
    
    if("over".equals(line)){  //如果接收到的数据是"over"结束循环
     break;
    }
    System.out.println("客服端消息:"+ line);
   }
   
   
   //关闭流
    br.close();
    out.close();
    socket.close();
    ss.close();
   
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
 }
}

 

 

 

 

package cn.hb.tcp;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.xml.ws.handler.MessageContext.Scope;

public class Client {

 /**
  * @param args
  */
 public static void main(String[] args) {
  
  //创建客户端Socket,指定服务器Socket的地址和端口 
  try {
   Socket socket= new Socket(InetAddress.getLocalHost(),9865);
   
   //读取服务器传过来的数据
   BufferedReader br =
    new BufferedReader(
      new InputStreamReader(socket.getInputStream()));
   
   String line;
   
   while((line =br.readLine())!=null){
    if("over".equals(line)){   //如果接收到的数据是“over”结束循环
     break;
     
    }
    System.out.println("服务器消息:"+line);
   }
   
   
   //向服务器发送数据
   
   PrintWriter out =new PrintWriter(socket.getOutputStream());
   
   out.println("你好服务器!");
   out.println("再见服务器!");
   out.println("over");
   out.flush();
   
   
   //关闭流和Socket
   br.close();
   out.close();
   socket.close();
   
  } catch (UnknownHostException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  

 }

}

 

posted @ 2009-12-26 02:57  kanjc  阅读(171)  评论(0编辑  收藏  举报