Socket编程的HelloWorld实例

public class Client
{
	
	
	public static void main(String[] args)
	{	
		Client c=new Client();
	 	c.receiveMessage();
	}
	
	public void receiveMessage(){
		Socket s=null;
		
		BufferedReader sbr=null;
		try
		{
			s=new Socket("127.0.0.1",9999);
			
			OutputStream os=s.getOutputStream();
			PrintWriter out=new PrintWriter(os,true);
			BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));
			
		//	IOUtils.write("receive", os);
//			InputStream is=s.getInputStream();
		
			sbr=new BufferedReader(new InputStreamReader(System.in));
			
			
			String message;
			while((message=sbr.readLine())!=null){
				out.println(message);
				String rs=br.readLine();
				System.out.println("receive message is "+rs);
				if(rs.equalsIgnoreCase("disconnect")){
					System.out.println("discon");
					break;
				}
				
			
			}
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}finally{
			if(s!=null)
				try
				{
					s.close();
				}
				catch (IOException e)
				{
					e.printStackTrace();
				}
		}
	}
}




public class Server
{
	
	
	
	public static void main(String[] args)
	{
		Server s=new Server();
		s.startServer(9999);
	}
	
	public void startServer(int port){
		ServerSocket ss = null;
		Socket socket = null;
		try
		{
			ss = new ServerSocket(9999);
			while (true)
			{
				try
				{
				 	System.out.println("waiting...");
					socket = ss.accept();
					InputStream is = socket.getInputStream();
//					String s = IOUtils.toString(is);
//					System.out.println("s= " + s);

					BufferedReader br = new BufferedReader(
							new InputStreamReader(is));
					PrintWriter out=new PrintWriter(socket.getOutputStream(),true);
					String str=null;
					while((str=br.readLine())!=null){
						if(str.equalsIgnoreCase("quit")){
							//关闭
							out.println("disconnect");
							break;
						}
						System.out.println("str="+str);
						out.println("Receive:"+str);
					}
				}catch(IOException e){
					e.printStackTrace();
				}
				finally
				{
					if (socket != null)
					{
						socket.close();
					}
				}
			}
		}
		catch (IOException e)
		{

			e.printStackTrace();
		}
		finally
		{
			if (ss != null)
				try
				{
					ss.close();
				}
				catch (IOException e)
				{

					e.printStackTrace();
				}

		}
	}

}


通过client,可以一直向Server发送信息,并得到返回信息。

输入quit,则和服务器之间断开连接。

你可能感兴趣的:(socket)