java_TCP/UDP整合

参考书籍:TCP/IP详解(三卷)
应用:防火墙,网络杀毒软件,游戏作弊软件
本章需要socket与io的结合
基于传输层TCP/UDP


········TCP编程
Socket :插座
java.net包:Socket  和 ServerSocket 分别在客户端和服务器端
建立连接所需要寻址信息为远程计算机的IP地址和端口号

端口:分UDP和TCP端口,每个65536个

TCP服务器端:
import java.net.*;
public class TCPServer{
public static void main(String[] args){
  ServerSocket ss = new ServerSocket(6666);   //服务器监听6666端口(监听模式)
  Socket s = ss.accept(); //接收client端(若没有信息,则一直等待)
  DataInputStream dis  = new DataInputStream(s.getInputStream()); //服务器端‘要’
  System.out.println(dis.readUTF());
  //关闭资源
  dis.close();
  s.close();
}
}

TCP客户端:
import java.net.*;
public class TCPClient{
public static void main(String[] args){
  Socket s = new Socket("127.0.0.1",6666);    //向本机6666端口建立连接
  OutputStream os = s.getOutputStream();  //相对于本身作为‘给’
  DataOutputStream dos = new DataOutputStream(os);  //流的转换(输出)
  dos.writeUTF("向服务器发送的消息");
  dos.flush();
  //关闭资源
  dos.close();
  s.close();
}
}

getInputStream  getOutputStream  getPort   getInetAddress   都是Socket的方法
在Socket s = ss.accept()后面语句即可


·········UDP编程(事实上无客户端和服务器端)

UDP服务器端:
import java.net.*;
public class TestUDPServer{
public static void main(String[] args){
  byte[] buf = new byte[1024];
  DatagramPacket dp  = new DatagramPacket(buf,buf.length);
  DatagramSocket ds = new DatagramSocket(5678);
  while(true){
   ds.recieve(dp);
   System.out.println(new String(buf,0,dp.getLength()));
  }
}
}


UDP客户端:
import java.net.*;
public class TestUDPClient{
public static void main(String[] args){
  byte[] buf = (new String("hello")).getBytes(); //把String打碎成byte
  DatagramPacket dp = new DatagramPacket(buf,buf.length,
    new InetSocketAddress("127.0.0.1",5678));
  DatagramSocket ds = new DatagramSocket(9999);
ds.send(dp);   //客户端端口9999向127.0.0.1的5678发送数据
ds.close();
}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值