当前位置: 首页 > news >正文

四川省建设工程设备安全协会网站免费做橙光封面的网站

四川省建设工程设备安全协会网站,免费做橙光封面的网站,图书网站建设,开发app需要哪些软件文章目录 前言 客户端 服务器端 输出线程端 End 前言 TCP(Transmission Control Protocol)是一种面向连接的、可靠的网络传输协议,它提供了端到端的数据传输和可靠性保证。 本程序就是基于tcp协议编写而成的。 利用 TCP 协议进行通信的…

文章目录

前言

客户端

服务器端

输出线程端

End

前言

 

TCP(Transmission Control Protocol)是一种面向连接的、可靠的网络传输协议,它提供了端到端的数据传输和可靠性保证。

 

本程序就是基于tcp协议编写而成的。

 

利用 TCP 协议进行通信的两个应用程序是有主次之分的,一个称为服务器程序,另一个称为客户机程序,两者的功能和编写方法大不一样。

 

代码结构图

在这里插入图片描述

 

 

 

客户端

import java.io.IOException;

import java.io.OutputStream;

import java.net.Socket;

import java.util.Scanner;

 

public class Client {

    public static void main(String[] args) throws IOException {

        Scanner in = new Scanner(System.in);

 

        // 发送数据

        // 创建 Socket对象

        // 创建对象时会连接服务器,如果连接不上会报错

        // 127.0.0.1 代表本机地址

        Socket socket = new Socket("127.0.0.1", 11451);

        MyThread thread = new MyThread();

        OutputStream os = socket.getOutputStream();

 

        while (true) {

            if (thread.getState() == Thread.State.NEW) {

                thread.setName("芜湖");

                thread.setSocket(socket);

                thread.start();

            }

 

            String str = in.next();

            os.write(str.getBytes());

            if ("886".equals(str)) {

                socket.shutdownOutput();

                break;

            }

        }

 

        System.out.println("主线程退出");

        in.close();

        os.close();

        socket.close();

    }

}

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

 

 

服务器端

 

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;

import java.util.Scanner;

 

public class Server {

    public static void main(String[] args) throws IOException, InterruptedException {

        Scanner in = new Scanner(System.in);

 

        // 接收数据

        // 创建ServerSocket对象

        ServerSocket ss = new ServerSocket(11451); // 获取指定端口的数据

        MyThread thread = new MyThread();

 

        Socket socket = ss.accept();// 监听客户端的连接,获取连接

        OutputStream os = socket.getOutputStream(); // 获取输出流

 

        while (true) {

            // 判断该线程是否启动

            if (thread.getState() == Thread.State.NEW) {

                thread.setName("呀呼");

                thread.setSocket(socket);

                thread.start();

            }

 

            // 从连接通道中获取输出流

            // 写出数据

            String str = in.next();

            os.write(str.getBytes());

            // 结束

            if ("886".equals(str)) {

                socket.shutdownOutput();

                break;

            }

        }

        System.out.println("主线程退出");

        in.close();

        os.close();

        socket.close();

        ss.close();

    }

}

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

 

 

输出线程端

 

import java.io.*;

import java.net.Socket;

import java.time.LocalDateTime;

import java.time.format.DateTimeFormatter;

 

public class MyThread extends Thread {

 

    Socket socket;

 

    public void setSocket(Socket socket) {

        this.socket = socket;

    }

 

    @Override

    public void run() {

        while (true) {

            BufferedInputStream isr = null; // 获取输出流

            try {

                isr = new BufferedInputStream(socket.getInputStream());

                int len;

                byte[] bytes = new byte[1024];

                while ((len = isr.read(bytes)) != -1) {

                    String target = new String(bytes, 0, len);

 

                    // 获取当前时间

                    LocalDateTime dateTime = LocalDateTime.now(); // get the current date and time

                    // 按照相应格式解析

                    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-dd-MM HH:mm:ss");

                    // 输出当前时间

                    System.out.println(dateTime.format(formatter));

                    // 输出对方传输的内容

                    System.out.println(getName()+":"+target);

                }

            } catch (IOException e) {

                break;

            }

        }

        System.out.println(getName()+"输出线程退出");

    }

}

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

End

此代码我已经测试过可以实现最初的无线数据传输,客户端运行在一个电脑上,服务器端运行在另一台电脑上,这时只需要将客户端的目标ip地址改为服务器端电脑的ip地址(如果不知到如何查询,win+r -> cmd->ipconfig,就可以看到自己电脑的IPv4 地址)。

 

需要注意的是,当时的测试环境是两台电脑处于同一个WiFi热点下进行的。

 

 

 

http://www.yayakq.cn/news/11506/

相关文章:

  • 网站设计制作用软件网站开发采购合同模板下载
  • ppt做的模板下载网站奥远网站建设流程
  • win7 iis7 添加网站怎么搭建一个博客网站
  • 卢氏县住房和城乡规划建设局网站网站设计要多久
  • 网站排名 算法中英文双语网站站点
  • 给人做传销网站龙华o2o网站建设
  • 菠菜彩票网站怎么建设建网站要注意些什么
  • 网上购物网站建设需求外贸网站建设收益
  • 石碣做网站有没学做早餐的网站
  • ie 10 常用网站做旅游网站的项目背景
  • 福州网站设计外包怎么看网站的建设时间
  • 网站怎么做转发网站开发维护岗位职责
  • 用照片做视频的网站好做网站的一定要开80或8080端口
  • 外贸企业网站模板郑州上海做网站的公司
  • 海南网站建设优化排名濮阳市建设分局网站
  • 网站开发小程序商标注册代理
  • 旅游建设投资公司中网站中国电子加工网
  • 昆明酒店网站建设电子商务网站建设网站电子版
  • 设计类网站app周口网站设计
  • 腾讯做网站上传新网站推广方法
  • 百度怎么做开锁网站小白 宝塔 wordpress
  • 百度搜录最快的网站杭州seo营销
  • 广西建设局建设行政主管部网站城市房产网
  • 免费建站并且绑定域名seo整体优化
  • 免费单页网站模板软件项目管理心得
  • 扬州外贸网站建设网站群建设分析
  • 淄博网站设计公司变装改造wordpress
  • 怎么在现有网站做直播内容php众筹网站程序源码
  • 保定市网站建设公司郑州网站app开发
  • 如何建设股权众筹网站怎么建立app