1.12-java socket编程 模拟2个机器人对话

java socket网络编程 模拟2个机器人对话

回到第一章:目录



前言

前面1.8 节,介绍了2个线程的通信,模拟了2个机器人对话。
这节介绍2台电脑之间的通信,2台电脑通信需要用到网络。
socket(译为套接字),是应用程序和网络通信协议进行交互的接口,它向上为用户(应用程序)提供操作网络的方法,向下实现与tcp/ip网络协议栈的对接。


提示:这节通过一个例子介绍使用java socket实现2台主机网络通信的基本方法。

一、编写服务器端程序

1、在IDEA中新建工程:socket-server,位置:E:\new\1.12\socket-server
2、新建包 com.my.socket
如下图:
在这里插入图片描述
3、新建Server类,这是一个继承了Thread的线程类。代码如下:

package com.my.socket;

import java.io.*;
import java.net.*;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Server extends Thread{
   
    //**服务器启动时占用的端口号:默认5001*/
    private int port=5001;
    //server的名字
    private String name = "";
    //缓存从socket读的一行数据
    private String inLine ="";
    //缓存写入socket的一行数据
    private String outLine = "";
    //格式化日期显示
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    /**
     * Server 类的构造函数,
     * @param name server的名字
     * @param port server监听的端口号
     */
   public Server(String name,int port){
   
        this.name = name;
        this.port = port;
        this.setName(name);
    }

    public void run(){
   
        try {
   
            System.out.println(name+":我准备好了。");
            // 创建一个服务器端的Socket:ServerSocket
            ServerSocket serverSocket = new ServerSocket(port);
            // accept(),使程序阻塞监听 端口 port,有连接申请时,就会得到一个Socket对象。
            Socket socket = serverSocket.accept();

            //从socket里读取数据的流
            BufferedReader socketIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            //向socket里写数据的流
            PrintWriter socketOut = new PrintWriter(socket.getOutputStream());
            //控制对话结束标志
            boolean chatting = true;
            while(chattin
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值