1.基本介绍:
特点:
发送端/客户端
接收端/服务端 这两端都必须存在Socket
网络编程的三要素
ip:IP地址
port:端口号 0-65535(0-1024属于保留端口)
协议:
udp:
1)不需要要建立链接通道
2)属于一种不可靠链接
3)发送的文件大小有限制(不同步)
4)执行效率高
tcp/IP协议:
1)建立链接通道
2)属于安全链接(可靠连接)
3)发送文件(使用基本字节流),相对udp协议来说没有限制
4)执行效率低(同步)
方法:
获取InetAddress:ip地址对象
public static InetAddress getByName(String host):参数:主机名称(计算机电脑名称)
public String getHostAddress():获取ip地址字符串形式
示例
public class UdpSend {
public static void main(String[] args) throws IOException {
DatagramSocket ds = new DatagramSocket() ;
byte[] bytes = "hello,你好".getBytes() ;
int length = bytes.length ;
InetAddress inetAddress = InetAddress.getByName("10.12.156.107");
int port = 12306 ;
DatagramPacket dp = new DatagramPacket(bytes,length,inetAddress,port) ;
ds.send(dp);
ds.close();
}
}
-----------------------------------------------------------------------------------------------
public class UdpReceive {
public static void main(String[] args) throws IOException {
DatagramSocket ds = new DatagramSocket(12306) ;
byte[] bytes = new byte[1024] ;
int lentgth = bytes.length ;
DatagramPacket dp = new DatagramPacket(bytes,lentgth);
ds.receive(dp);
byte[] bytes2 = dp.getData();
int length2 = dp.getLength();
String receiverStr = new String(bytes2,0,length2) ;
String ip = dp.getAddress().getHostAddress();
System.out.println("data from "+ip+" ,content is :"+receiverStr);
}
}
|