网络编程不等于网站编程 作为网关的机器,一搬有两个网卡,一个网卡写着内网的IP,另一个写着外网的IP
Socket:
两个java应用程序可通过一个双向的网络通信连接实现数据交换,这个双向链路的一端称为一个Socket。Socket通常用来实现client-server连接java.net包中定义的两个类Socket(用于客户端)和ServerSocket(用于服务器端),分别用来实现双向连接的client和server端。建立连接所需的寻址信息为远程计算机的IP地址和端口号(Port number),端口号又分UDP端口和TCP端口,各有65536个端口。先启动服务器端,再启动客户端。TCP Socket通信模型
Server端: ServerSocket s(port #) s.accept() //等待连接 Socket 对象 OutputStream InputStream Socket.close(); Client端: Socket(host,port #) OutputStream InputStream Socket.close()UDP DatagramSocket通信模型
Server端: DatagramSocket ds=new DatagramSocket(5555);//这个5555是UDP的端口,TCP的5555端口还可以用 DatagramPacket数据包: byte[] buf=new byte[1024]; DatagramPacket dp=new DatagramPacket(buf,buf.length); ds.receive(dp);//用dp这个数据包来装数据 用String来显示数据包里面的数据: String s=new String(buf,0,dp.getLength()); Client端: byte[] byf=(new String("hello")).getBytes(); DatagramPacket dp=new DatagramPacket(buf,buf.length,new InetSocketAddress("127.0.0.1",5555)); DatagramSocket ds=new DatagramSocket(9999); ds.send(dp); ds.close();