局域网内主机之间Socket通信实现
来源:互联网 发布:手机淘宝怎么申请品牌 编辑:程序博客网 时间:2024/05/23 23:44
只能传输文字且只能在局域网内实现通信
主机1:
package SocketTest;import java.net.*;import java.io.*;import java.awt.*;import javax.swing.*;import java.util.*;import java.awt.event.*;public class Server extends JFrame implements Runnable,ActionListener {JTextField outMessage = new JTextField(12);JTextArea inMessage = new JTextArea(12,20);JButton b = new JButton("发送数据");Server(){super("Server");setSize(320,200);setVisible(true);JPanel p = new JPanel();b.addActionListener(this);p.add(outMessage);p.add(b);Container con = getContentPane();con.add(new JScrollPane(inMessage), BorderLayout.CENTER);con.add(p, BorderLayout.NORTH);Thread thread = new Thread(this);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);validate();thread.start();}public void actionPerformed(ActionEvent event){ byte b[] = outMessage.getText().trim().getBytes(); try{ InetAddress address = InetAddress.getByName("192.168.1.110"); DatagramPacket data = new DatagramPacket(b,b.length,address,1234); DatagramSocket mail = new DatagramSocket(); mail.send(data); } catch(Exception e){}}public void run(){DatagramPacket pack = null;DatagramSocket mail = null;byte b[] = new byte[8192];try{pack = new DatagramPacket(b,b.length);mail = new DatagramSocket(5678);}catch(Exception e){}while(true){try{mail.receive(pack);String message = new String(pack.getData(),0,pack.getLength());inMessage.append("收到的数据来自"+pack.getAddress());inMessage.append("\n收到的数据是"+message+"\n");inMessage.setCaretPosition(inMessage.getText().length());}catch(Exception e){}}}public static void main(String [] args){new Server();}}
主机2:
package SocketTest;import java.net.*;import java.io.*;import java.awt.*;import javax.swing.*;import java.util.*;import java.awt.event.*;public class Client extends JFrame implements Runnable,ActionListener {JTextField outMessage = new JTextField(12);JTextArea inMessage = new JTextArea(12,20);JButton b = new JButton("发送数据");Client(){super("Client");setBounds(350,100,320,200);setVisible(true);JPanel p = new JPanel();b.addActionListener(this);p.add(outMessage);p.add(b);Container con = getContentPane();con.add(new JScrollPane(inMessage), BorderLayout.CENTER);con.add(p, BorderLayout.NORTH);Thread thread = new Thread(this);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);validate();thread.start();}public void actionPerformed(ActionEvent event){ byte b[] = outMessage.getText().trim().getBytes(); try{ InetAddress address = InetAddress.getByName("192.168.1.106"); DatagramPacket data = new DatagramPacket(b,b.length,address,5678); DatagramSocket mail = new DatagramSocket(); mail.send(data); } catch(Exception e){}}public void run(){DatagramPacket pack = null;DatagramSocket mail = null;byte b[] = new byte[8192];try{pack = new DatagramPacket(b,b.length);mail = new DatagramSocket(1234);}catch(Exception e){}while(true){try{mail.receive(pack);String message = new String(pack.getData(),0,pack.getLength());inMessage.append("收到的数据来自"+pack.getAddress());inMessage.append("\n收到的数据是"+message+"\n");inMessage.setCaretPosition(inMessage.getText().length());}catch(Exception e){}}}public static void main(String [] args){new Client();}}
0 0
- 局域网内主机之间Socket通信实现
- 局域网内不同主机之间实现数据库共享
- C# 局域网内socket通信 TCP
- android局域网内通过socket通信
- 实现不同路由器下各主机的局域网通信(设置在同一网段内)
- 使用socket实现局域网内两个电脑之间图片的收发
- linux下第一个socket编程实现的局域网内通信(基于TCP)
- 局域网内通过socket进行通信聊天 jar包
- socket实现ping嗅探,获取局域网所有活动主机
- 不同内网的两台主机之间的通信
- 关于同网段内主机之间通信细节
- Java 的Socket实现内网和外网之间的通信(说明)
- 【Android】socket局域网通信
- 利用ssh与局域网内主机建立远程连接实现局域网穿透
- 关于局域网内两主机之间单向ping通的问题
- 记录:通过Socket实现局域网内,手机关闭电脑
- ESP8266学习笔记2:实现ESP8266的局域网内通信
- ESP8266学习笔记2:实现ESP8266的局域网内通信
- AngularJS
- 骚扰电话识别接口api,php实现,360数据
- 欢迎使用CSDN-markdown编辑
- (八)JavaScript Date对象属性方法
- hibernate
- 局域网内主机之间Socket通信实现
- HTML5中canvas画图之根据触摸点画三角形
- java命令行运行设置classpath星号的作用
- 关于埋点
- https://github.com/espressif/esp8266_mp3_decoder
- ajax回调函数 异步延迟
- smtp协议
- linux文本处理 sort,grep,sed,awk,uniq 用法
- nyoj 19 擅长排列的小明 【next_permutation() 】