网络编程

一:UDP编程

.Inetaddress类
该类没有构造方法,表示的是互联网协议(ip)地址

常用方法:

public static InetAddress getByName(String host)throws UnknownHostException
在给定主机名的情况下确定主机的 IP 地址
Inetaddress address=Inetaddress.getByName("ip地址或者主机名");
public String getHostName()获取此 IP 地址的主机名。 
String ip=address.getHostName();
DatagramSocket() 
         构造数据报套接字并将其绑定到本地主机上任何可用的端口。
public DatagramSocket(int port)
        创建一个UDP Socket对象
DatagramPacket(byte[] buf, int length) 
        构造 DatagramPacket,用来接收长度为 length 的数据包。
DatagramPacket(byte[] buf, int length, InetAddress address, int port) 
        构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。

一个类没有构造方法:
(1)该类的成员变量及方法都是静态的
(2)单例模式
(3)该类中某些静态方法返回了该类的示例

UDP开发步骤:
(发送端)
1)创建UDP协议发送端的Socket对象
2)创建数据报包:通过这个数据包将数据发送到接收端
3)调用UDP协议发送端发送的方法
4)关闭资源
(接收端)
 * 1)创建接收端的Socket对象
 * 2)创建一个数据报包接收发送端发送来的数据报包(接收容器)
 * 3)接收数据,调用DataScoket类中的接收的方法来接收数据包
 * 4)解析数据报包里面的实际数据,显示在控制台上
 * 5)关闭资源
UDP编程代码示例:
发送端;
public class Send {
    public static void main(String[] args) throws IOException {
        DatagramSocket ds = new DatagramSocket();
        InetAddress address = InetAddress.getByName("192.168.1.155");
        byte[] buffer = "UDP I am coming".getBytes();
        DatagramPacket dp = new DatagramPacket(buffer, buffer.length, address, 12345);
        ds.send(dp);
        ds.close();
    }
}
UDP编程代码示例;
接收端:
public class Receive {
    public static void main(String[] args) throws IOException {
        DatagramSocket ds = new DatagramSocket(12345);
        byte[] buf = new byte[1024];
        DatagramPacket dp = new DatagramPacket(buf, buf.length);
        ds.receive(dp);
        byte[] data = dp.getData();
        int length = dp.getLength();
        System.out.println(new String(data, 0, length));
    }
}

二:TCP编程

客户端常用方法
Socket(InetAddress address, int port) 
          创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
void close() 
          关闭此套接字。 
InputStream getInputStream() 
          返回此套接字的输入流。 
OutputStream getOutputStream() 
          返回此套接字的输出流。 
 void shutdownOutput()//(形象理解)该方法在发送数据时候作为结束标志一样使用 
          禁用此套接字的输出流。
服务器端常用方法
ServerSocket(int port) 
          创建绑定到特定端口的服务器套接字。
Socket accept() 
          侦听并接受到此套接字的连接。 
 void close() 
          关闭此套接字。 
 InetAddress getInetAddress() 
          返回套接字连接的地址。  
TCP编程开发步骤:
(客户端)
1)创建客户端的socket对象 (客户端套接字流的形式)
2)获取通道的内流(输出流)
3)使用输出流对象写数据
4)关闭客户端的Socket对象
(服务器端)
1)创建服务器端的socket对象,指定端口
2)服务器端需要监听客户端的连接
3)获取通道内的输入流
4)将数据获取到并显示到控制台
5)关闭服务器端的socket资源
//客户端
public class Client {
public static void main(String[] args) throws Exception {
    Socket s=new Socket("192.168.1.155", 12345);
    OutputStream os = s.getOutputStream();
    os.write("Tcp I am Coming".getBytes());
    s.close();

}
}
//服务器端
public class Server {
public static void main(String[] args) throws IOException {
    ServerSocket ss=new ServerSocket(12345);
    Socket s=ss.accept();
    InputStream is = s.getInputStream();
    byte[] buf=new byte[1024];
    is.read(buf);
    System.out.println(new String(buf,0,buf.length));
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值