网络通信初步

                                                  网络通信初步讲解

            从刚开始讲,我们最常用的聊天工具无非是qq,想要编程达到qq的效果还是需要一定的理解,比如说,我们手中的电脑是服务器,想要跟你聊天的人就是客户机,你的电脑的服务器有一个属于你的标示,这里可以理解成门牌号,当人家想要访问你的时候,必须要知道你的门牌号,就是代码一下这一段:

ServerSocket s=new ServerSocket(port);
			System.out.println(port+"连接成功");

 

这是你创建的服务器,其中的port是你将要自定义的门牌号,虽然门牌号可以自己定义,但是范围还是要在从0~65535之间,我给自己定的是8888,如下示意:

new Server().setup(8888);

public class Server {
	public void setup(int port){
		try {
			//根据所给的端口号打开服务器端口,相当于开门
			ServerSocket s=new ServerSocket(port);
			System.out.println(port+"连接成功");
			Socket  messager=s.accept();
			InputStream tome=messager.getInputStream();
			OutputStream tosomeone=messager.getOutputStream();
			//写到别人那里的
			String msg = "打死你";
			tosomeone.write(msg.getBytes("GBK"));

			//我接收到的,也就是读到我这里的
			while(true){
				int n=tome.read();
				System.out.println((char)n);
			}
			
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	
	
	
	
	
	public static void main(String[] args) {
		//你将要打开的服务器门牌号8888
		new Server().setup(8888);
	}

}

 

这是完整代码,其中这一段:

Socket  messager=s.accept();
InputStream tome=messager.getInputStream();
OutputStream tosomeone=messager.getOutputStream();
相当于创建客户机就是Socket,你的电脑在这里就相当于客户机了,要创建一个信使也就是messager来接受服务器发来的讯息,同时inputstream是客机发给主机,outputstream是主机发给客机,下面就是实现一个写到客机上的代码:

String msg = "打死你";
tosomeone.write(msg.getBytes("GBK"));

//我接收到的,也就是读到我这里的
while(true){
int n=tome.read();
System.out.println((char)n);
}
之所以要定义不断循环是为了不断读入,因为客机在一次链接成功以后,读入后就会断开与主机连接,例如:
网络通信初步_第1张图片
 所以我们这里设置无限读入

在我们用自己电脑的客户机去连接服务器时,我们的ip地址可以是localhost,这里要用到telnet服务器例如:


网络通信初步_第2张图片
 
网络通信初步_第3张图片
 已成功服务器写入客户端,接下来是客户端写入服务器,随便在cmd上打些数字


网络通信初步_第4张图片
 


网络通信初步_第5张图片
 屏幕上出现了这些字,好了完成了这些,你也就初步掌握了简单的网络通信,你就可以在局域网中用别人的计算机连接你的电脑聊天了,这时记住ip地址不再是localhost ,自己的真正地址哦

 

你可能感兴趣的:(网络通信)