`
aikon218
  • 浏览: 4834 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

TCP/UDP协议,远程链接与控制

    博客分类:
  • JAVA
阅读更多
TCP远程控制


TCP协议:是可靠的,面向对象的,但是传输效率比较低

使用Socket类
会使用ServerSocket类

TCP客户端:
用来发送请求,再显示远程桌面面板,面板要有要连接IP地址,端口号。再给按钮添

加监听器

MyListener mlis =new MyListener();
btn.addActionListener(mlis);

//按钮监听器
class MyListener implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e){
    //获得Ip@端口
    String ip = ipField.getText();
    String port = portField.getText();

    int intPort = Integer.parseInt(port);
   
            try{
//创建客户端套接字,连接服务端
Socket socket =new Socket(ip,intPort);
//不停的接受服务端发来的图片
RecieveThread rt =new RecieveThread(socket,panel);
rt.start();
    }catch(Exception e1){
//弹出错误提示框
JOptionPane.showMessageDialog(null,"网络异常,无法连接服务器!");
e1.printStackTrace();    
    }
    }
    }
}
// 从Socket上获得输入流
InputStream ips = socket.getInputStream();
// 由于接受的是对象流
ObjectInputStream ois = new ObjectInputStream(ips);
while (true) {
// 读取对象,由于发送的是ImageIcon,这里可以强制转型成ImageIcon
Object obj = ois.readObject();
ImageIcon icon = (ImageIcon) obj;

//获得图像大小(即为服务端桌面大小)
int width = icon.getIconWidth();
int height = icon.getIconHeight();

//修改panel大小为服务端桌面大小
panel.setPreferredSize(new Dimension(width,height));
//获得画布
Graphics g = panel.getGraphics();
g.drawImage(icon.getImage(), 0,0, null);

TCP服务端:


接收客服端的请求

// 初始化服务端的方法
public void initServer() throws IOException {
// 创建服务端套接字对象
ServerSocket server = new ServerSocket(10010);

System.out.println("服务器已经启动,等待连接");

// 等待客户端连接,如果有客户端连接上,会收到客户端套接字
Socket socket = server.accept();
System.out.println("一个客户端连上了"+socket.getRemoteSocketAddress());
// 启动一个线程来给客户端发送服务端桌面
SendThread st = new SendThread(socket);
st.start();

//从套接字上获得输出流
OutputStream ops = socket.getOutputStream();
//包装成对象流
ObjectOutputStream oos = new ObjectOutputStream(ops);

// 创建一个机器人对象,用来截屏
Robot robot = new Robot();

while (true) {
// 获得屏幕的分辨率
Toolkit tool = Toolkit.getDefaultToolkit();
Dimension dim = tool.getScreenSize();

// 要截取的起始点
Point p = new Point(0, 0);

// 指定截取的区域
Rectangle rect = new Rectangle(p, dim);

// 开始截屏,获得截取到的图像
BufferedImage img =    robot.createScreenCapture(rect);

//由于BufferedImage没有实现序列化,不能写到IO中
//将BufferedImage包装成可写入IO的图像对象
ImageIcon icon = new ImageIcon(img);

//写出对象
oos.writeObject(icon);
oos.flush();


UDP的传输:
         UDP发送数据:
         public static void main (String[] args)throws Exception {
//发件人的地址与发件人实例化
SocketAddress sendAdd = new InetSocketAddress("127.0.0.1",9091);
//收件人的地址
SocketAddress address = new InetSocketAddress("127.0.0.1",9090);
//用来发送数据包的套接字(快递员)
DatagramSocket socket = new DatagramSocket(sendAdd);

int num =0 ;
while(true){
num++;


String ems="我是快递UDP";
byte[] bnf= ems.getBytes();//吧字符串转换成字节类型
Thread.sleep(1000);

//创建一个要发送的数据包(包裹)
DatagramPacket packet =new DatagramPacket(bnf, bnf.length, address);
//发送数据包
socket.send(packet);

          UDP接收数据:


//接受方的地址
SocketAddress receiveAdd= new InetSocketAddress ("127.0.0.1",9090);
//创建接收数据的套接字(快递员)
DatagramSocket socket = new DatagramSocket(receiveAdd);

int num =0;
while(true){
num++;
Thread.sleep(1000);
byte [] buf = new byte[1024];
//创建数据包对象
DatagramPacket packet =new DatagramPacket(buf ,buf.length);

//接收数据包,数据就会被存在buf数组中
socket.receive(packet);
String str = new String(buf);
System.out.println(str.trim());


总结:tcp协议和udp协议的区别
               TCP    UDP
     是否连接 面向连接 面向非连接
     传输可靠性 可靠 不可靠
     应用场合 传输大量数据 少量数据
     速度        慢     快
分享到:
评论

相关推荐

    TCP/UDP服务管理器

    【TCP/UDP服务管理器】是一款实用的网络通信测试工具,专为IT专业人士设计,用于管理和测试基于TCP和UDP协议的网络服务。该工具具备双重功能,既可以作为服务器端进行监听,等待客户端的连接,也可以作为客户端主动...

    tcp/ip协议中各层的协议的作用

    Tcp 协议支持多种服务类型,如文件传送协议 FTP、RLogin 远程登录、SMTP POP3 电子邮件、NFS 网络文件系统、远程打印、远程执行、名字服务器、终端服务器等。 Tcp 协议的工作原理是通过三个报文段完成连接的建立,...

    单片机c8051实现tcp/ip协议栈

    3. 传输层:TCP(传输控制协议)和UDP(用户数据报协议)位于这一层。TCP提供可靠的数据传输,包括连接管理、序列号、确认应答和流量控制等机制;UDP则为无连接服务,适合实时性要求高的应用。在C8051上,要实现这些...

    TCP/UDP winsock C/C++ programming

    在C/C++中,利用Winsock API进行TCP和UDP编程,首先需要包含头文件`winsock2.h`,然后在链接器设置中加入`wsock32.lib`作为依赖库。下面是一些基本的步骤: 1. **初始化Winsock**:调用`WSAStartup`函数启动Winsock...

    网络调试助手TCP/UDP

    ### 知识点二:TCP与UDP协议对比 #### 2.1 TCP协议 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在TCP/IP协议族中,TCP负责在应用程序之间提供可靠...

    TCP/IP教程TCP/IP基础

    9.3 理解传输控制协议(TCP) 81 9.3.1 TCP头结构 81 9.3.2 TCP做什么 83 9.4 理解用户数据报协议(UDP) 85 9.4.1 UDP头结构 85 9.4.2 UDP能做什么 85 9.4.3 TCP和UDP 86 9.5 小结 86 第10章 IPv6 87 10.1 IPv6数据报 ...

    基于TCP/IP协议,用Winsock套接字技术

    对于UDP协议,参数应设置为AF_INET(表示IPv4)、SOCK_DGRAM(表示UDP)和0(或IPPROTO_UDP)。接着,使用`bind()`函数将套接字绑定到本地地址和端口。为了实现全双工通信,需要创建两个套接字,可能需要使用`...

    TCP/IP详解(卷一)

    而且结合大量实例讲述了TCP/IP协议包的定义原因及在各种不同的操作系统中(如Sunos4.1.3、Soloris2.2、AIX3.2.2)的应用与工作方式,这样可以以动态方式讲述TCP/IP的知识,使读者可以轻松掌握TCP/IP的知识:路由协议...

    jsTerm:串行端口和 TCP/UDP 连接的终端-开源

    TCP(传输控制协议)和UDP(用户数据报协议)是两种主要的网络通信协议。TCP是一种面向连接的、可靠的协议,而UDP则是无连接的、不可靠的协议。jsTerm不仅支持串行端口,还支持通过TCP和UDP进行网络通信。开发者可以...

    TCP/IP技术大全

    9.3 理解传输控制协议(TCP) 81 9.3.1 TCP头结构 81 9.3.2 TCP做什么 83 9.4 理解用户数据报协议(UDP) 85 9.4.1 UDP头结构 85 9.4.2 UDP能做什么 85 9.4.3 TCP和UDP 86 9.5 小结 86 第10章 IPv6 87 10.1 IPv6数据报 ...

    TCP/IP详解 卷1完整版

    第17章 TCP:传输控制协议 170 17.1 引言 170 17.2 TCP的服务 170 17.3 TCP的首部 171 17.4 小结 173 第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 ...

    TCP/IP详解卷1:协议

    第17章 TCP:传输控制协议 170 17.1 引言 170 17.2 TCP的服务 170 17.3 TCP的首部 171 17.4 小结 173 第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 ...

    TCP/IP详解 卷1:协议--源代码

    第17章 TCP:传输控制协议 170 17.1 引言 170 17.2 TCP的服务 170 17.3 TCP的首部 171 17.4 小结 173 第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的...

    C# 获取本机TCP和UDP连接

    首先,我们需要了解TCP(传输控制协议)和UDP(用户数据报协议)是两种主要的网络通信协议。TCP是一种面向连接的、可靠的协议,它确保数据的正确顺序和完整性,而UDP则是无连接的、不可靠的协议,速度快但不保证数据...

    TCPIP详解--共三卷

    第17章 TCP:传输控制协议 170 17.1 引言 170 17.2 TCP的服务 170 17.3 TCP的首部 171 17.4 小结 173 第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 ...

    TCP_IP协议详解卷一

    第17章 TCP:传输控制协议 170 17.1 引言 170 17.2 TCP的服务 170 17.3 TCP的首部 171 17.4 小结 173 第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 ...

    TCP/IP详解卷 pdf格式

    第17章 TCP:传输控制协议 170 17.1 引言 170 17.2 TCP的服务 170 17.3 TCP的首部 171 17.4 小结 173 第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 ...

    8051 TCP/IP 源码

    4. **UDP协议**:用户数据报协议(UDP)是另一种传输层协议,它不提供连接或可靠性保证,但速度快,适用于实时应用。8051上的UDP源码将处理UDP报文的封装和发送。 5. **DNS协议**:域名系统(DNS)用于将域名转换为...

Global site tag (gtag.js) - Google Analytics