serverSocket与socket的通信示例


下图描述了ServerSocket与Socket通信的过程 serverSocket与socket的通信示例_第1张图片
代码如下:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.Scanner;

/**
 * 描述: 网络客户端
 * 版权: Copyright (c) 2012 
 * 版本: 1.0 
 * 创建日期: 2012-7-3 
 * 创建时间: 上午11:24:10
 */
public class Client {
	private String host = "10.200.0.58";
	private int port = 8087;
	
	public Client()
	{
		
	}
	
	public Client(String i_host,int i_port)
	{
		this.host = i_host;
		this.port = i_port;
	}
	
	public void chat()
	{
		try{
			Socket socket = new Socket(host,port);
			try{
				DataInputStream in = new DataInputStream(socket.getInputStream());
				DataOutputStream out = new DataOutputStream(socket.getOutputStream());
				Scanner scanner = new Scanner(System.in);
				while(true){
					String send = scanner.nextLine();
					System.out.println("客户端:"+send);
					out.writeUTF("客户端:"+send);
					String accept = in.readUTF();
					System.out.println("服务器:"+accept);
				}
			}
			finally{
				socket.close();
			}
		}catch(IOException e)
		{
			e.printStackTrace();
		}
		
	}
	public static void main(String[] args) {  
		       new Client().chat();  
		   }  

}



下面是服务端的代码:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

/**
 * 描述: Socket服务器测试
 * 版权: Copyright (c) 2012 
 * 版本: 1.0 
 * 创建日期: 2012-7-3 
 * 创建时间: 上午10:48:49
 */
public class Server{
	private int port;
	
	public Server(int i_port)
	{
		port = i_port;
	}
	
	public Server()
	{
		this.port = 8089;
	}
	
	/**
	 * 描述:服务流程
	 * 作者:李海伟
	 * 时间:2012-7-3 上午10:50:36
	 */
	public void service()
	{
		try{
			ServerSocket server = new ServerSocket(port);
			System.out.println("服务"+port+"启动");
			Socket socket = server.accept();
			try{
				DataInputStream in = new DataInputStream(socket.getInputStream());
				DataOutputStream out = new DataOutputStream(socket.getOutputStream());
				Scanner scanner = new Scanner(System.in);
				while(true){
					String word = in.readUTF();
					System.out.println(word);
					String send = scanner.nextLine();
					System.out.println("服务器:"+send);
					out.writeUTF("服务器:"+send);
				}
			}finally{
				socket.close();
			}
			
		}catch(IOException e)
		{
			e.printStackTrace();
		}
	}
	public static void main(String []args)
	{
		new Server(8087).service();
	}
}

你可能感兴趣的:(socket,ServerSocket)