【Java网络编程】入门Hello World

网络编程中有两个主要的问题

一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。

 服务端:

package Server;

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.ServerSocket;
import java.net.Socket;

public class MyServer {
    public static void main(String[] args) {
    	try {
    		//服务端的套接字 需要一个端口号
    		ServerSocket ss=new ServerSocket(2020);
    		Socket s=ss.accept();//从服务端套接字或得到的,要等待客户端连接,阻塞式
    		Reader in =new InputStreamReader(s.getInputStream());//有流获取信息
    	    int c;
    	    //一直读 直到有值
    	    while ((c=in.read())!=-1) {
    	    	System.out.write(c);
    	    } 
    	    s.close();//要注意关闭
    	    ss.close();
    	}catch(IOException e) {
    		e.printStackTrace();
    	}
    }
}

 客户端:

package Server;

import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

public class MyClient {
  public static void main(String[] args) {
	  try {
		  //本机 或则填ip,打开防火墙
		  Socket s =new Socket("localhost",2020);
		  Writer out=new OutputStreamWriter(s.getOutputStream());
		 Scanner input = new Scanner(System.in);
		 String a=input.nextLine()+"\n";
		  out.write("Hello,Java netWork programming!\n");
		  out.write(a);
		  out.close();
		  input.close();
		  s.close();
	  }
	  
	  catch(UnknownHostException e) {
		  e.printStackTrace();
	  }
	  catch(IOException e) {
		  e.printStackTrace();
	  }
  }
}

  运行时,先启动服务器端,在运行客户端,观察console

 

 

 在客户端输入Hello world

两边都停止了运行,输出结果相同

猜你喜欢

转载自www.cnblogs.com/SeasonBubble/p/12564072.html