---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
黑马程序员 网络编程
一、网络编程基础知识
1、TCP/IP网络程序的IP地址和端口号
IP:网络设备的标识,本地回环地址:127.0.0.1,主机名:localhost
Port(端口):用于标识进程的逻辑地址,不同进程的标识。
有效端口:0~65535,其中0~1024系统占用或保留端口。
2、网络传输协议
UDP:无连接通信协议,因不需要建立连接,通信不安全,但传输速度快,数据大小限制在64k内。
TCP:面向连接的通信协议,必须建立连接,可进行大量数据连接,安全可靠,但传输速度慢。
3、Socket
网络驱动层提供给应用程序编程的接口和一种机制
二、JAVA编写UDP网络程序
//发送端
public class UdpSend {
public static void main(String[] args) throws Exception {
//建立udp的Socket的服务,用DatagramSocket类
DatagramSocket ds=new DatagramSocket();
//封装数据,用DatagramPacket类
String str="您好,我来啦!";
DatagramPacket dp=new DatagramPacket(str.getBytes(),str.length(), InetAddress.getByName("169.254.188.21"),3000);
//调用DatagramSocket类的send方法发送数据
ds.send(dp);
//关闭服务
ds.close();
}
}
//接收端
public class UdpRecv {
public static void main(String[] args) throws Exception {
//建立服务,用DatagramSocket类
DatagramSocket ds=new DatagramSocket(3000);
//创建数据包,存储数据
byte [] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf, 1024);
//使用DatagramSocket的receive方法接收数据
ds.receive(dp);
//解析数据
System.out.println(new String(dp.getData()));
//关闭服务
ds.close();
}
}
三、java编写TCP网络程序
//客户端
public class ClientDemo {
public static void main(String[] args) throws Exception, IOException {
//创建客户端Socket服务
Socket socket=new Socket("192.168.1.102",8001);
//获取Socket流中的输出流
java.io.OutputStream out = socket.getOutputStream();
//使用输出流把指定的数据输出
out.write("嗨,哥们,我来了!".getBytes());
//关闭资源
socket.close();
}
}
//服务端
public class ServerDemo {
public static void main(String[] args) throws Exception {
//创建服务端对象
ServerSocket ss=new ServerSocket(8001);
//获取连接过来的客户端对象
Socket s=ss.accept();//阻塞式.
//通过socket对象获取输入流,读取客户端发来的数据
InputStream in=s.getInputStream();
byte [] buf=new byte[1024];
int len=in.read(buf);
System.out.println(new String(buf,0,len));
//关闭资源
s.close();
ss.close();
}
}
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------