Java.UDP-TCP-DatagramSocket-DatagramPacket-InetAddress-ServerSocket-Socket

UDP:
DatagramSocket
public DatagramSocket() throws SocketException
public DatagramSocket(int port) throws SocketException
public DatagramSocket(int port,InetAddress laddr) throws SocketException

port:为socket绑定端口,不指定,系统会自动分配未被占用的端口
laddr:为socket绑定IP地址,适用于计算机有多块网卡和多个IP的情况,我们可以明确规定我们的数据通过哪块网卡向外发送和接收哪块网卡收到的数据。

发送一般用第一种构造方法(不用指定端口),接收一般用第二种构造方法(要指定端口)

如果我们的程序不再使用某个Socket,我们应该调用DatagramSocket.close()方法

发送数据时,用Datagram.send()方法
public void send(DatagramPacket p) throws IOException

接收数据时,用Datagram.receive()方法
public void recevie(DatagramPacket p) throws IOException


DatagramPacket
public DatagramPacket(byte [] buf,int length)
public DatagramPacket(byte [] buf,int length,InetAddress,int port)
发送用第二种,接收用第一种

InetAddress
在发送数据时,DatagramPacket构造方法需要传递一个InetAddress的实例对象,InetAddress是用于表示计算机地址的一个类,我们习惯上表示计算机地址是用字符串格式(192.168.0.1),根据字符串地址格式来创建一个InetAddress类的实例对象 用InetAddress.getByName()这个静态方法能够根据我们的条件返回一个InetAddress类的实例对象。
数据接收到DatagramPacket对象中后,通过DatagramPacket.getInetAddress()返回InetAddress类型的对象,转换成用点隔开的字符串型的IP地址用InetAddress.getHostAddress()方法。

byte [] buf=new byte[1024];
buf[]={1,2,33,5,4}
new String(buf,0,buf.length);
buf.toString();
注意最后两行的不同。


TCP
ServerSocket
public ServerSocket() throws IOException
public ServerSocket(int port) throws IOException
public ServerSocket(int port,int backlog) throws IOException
public ServerSocket(int port,int backlog,InetAddress bindAddr) throws IOException
一般用第二种

Socket
public Socket()
public Socket(String host,int port) throws UnknownHostExcetion,IOException
public Socket(InetAddress Address,int port) throws IOException
public Socket(String host,int port,InetAddress localAddr,int localPort()) throws IOException
public Socket(InetAddress address,int port,InetAddress localAddr,int localPort) throws IOException
一般用第二种指定服务器地址和和端口

当客户端和服务器端的两个建立了专线连接后,连接的一端能向另一端连续写入字节,也能从另一端连续读入自己,也就是建立了专线连接的两个Socket是IO流的方式进行数据交换的。Socket.getInputStream方法链接的两个Socket是以IO流的方式进行数据交换的。
Socket.getInputStream返回Socket输入流对象,Socket.geOutputStream返回Socket的输出流对象。


弱点:IO输入输出,数据类型转换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值