JAVA笔记15__TCP服务端、客户端程序 / ECHO程序 /

/**
 * TCP:传输控制协议,采用三方握手的方式,保证准确的连接操作。
 * UDP:数据报协议,发送数据报,例如:手机短信或者是QQ消息。
 */

/**
 * TCP服务器端程序
 */
public class Main {
    public static void main(String[] args) {
       try {
            ServerSocket s1 = new ServerSocket(57712); //创建一个服务器端socket
            System.out.println("服务器已启动,正在等待连接中....");
            Socket s = s1.accept(); //等待客户端连接,会阻塞
            String info = "Hello World ---\n";
            //构造一个字节输出流
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
            bw.write(info);
            bw.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}
/**
 * TCP客户端程序
 */
public class ClientDemo {
    public static void main(String[] args){
        try {
            System.out.println("good");
            //创建一个客户端的socket对象(IP/主机名,端口号)
            Socket s1 = new Socket("172.31.150.27",57712);
            System.out.println("与服务器连接成功");
            //构造一个字符输入流
            BufferedReader br = new BufferedReader(new InputStreamReader(s1.getInputStream()));
            String info = br.readLine();
            System.out.println(info);
            br.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}
/**
 * ECHO服务器端程序
 */
public class Main {
    public static void main(String[] args) throws IOException {
       ServerSocket s = new ServerSocket(12347);
       System.out.println("Server has started. is Waiting....");
       boolean flag = true;
       while(flag){
           System.out.println("is waiting for connection....");
           Socket s0 = s.accept();
           System.out.println("客户端IP:"+s0.getInetAddress().getHostAddress()+" 已连接!");
           //获取输入输出流
           BufferedReader br = new BufferedReader(
                   new InputStreamReader(s0.getInputStream()));
           PrintStream ps = new PrintStream(
                   new BufferedOutputStream(s0.getOutputStream()));
           boolean bool = true; //循环接收数据
           while(bool){
               String info = br.readLine();
               if(info==null || "bye".equals(info)){
                   bool = false;
               }else{
                   System.out.println(info);
                   ps.println("echo:"+info);
                   ps.flush();
               }
           }
           ps.close();
           br.close();
       }
    }
}
/**
 * ECHO客户端程序
 */
public class ClientDemo {
    public static void main(String[] args) throws IOException{
        //创建一个客户端的socket对象(IP/主机名,端口号)
        Socket s0 = new Socket("172.31.150.27",12347);
        System.out.println("与服务器连接成功");
        Scanner input = new Scanner(System.in);
        boolean flag = true;
        PrintStream ps = new PrintStream(
                   new BufferedOutputStream(s0.getOutputStream()));
        BufferedReader br = new BufferedReader(
                   new InputStreamReader(s0.getInputStream()));
        while(flag){
            System.out.println("请输入:");
            String info = input.next();
            if("bye".equals(info)){
                flag = false;
            }else{
                ps.println(info);
                ps.flush();
                System.out.println(br.readLine());
            }
        }
        br.close();
        ps.close();
    }
}
时间: 2024-11-08 18:14:09

JAVA笔记15__TCP服务端、客户端程序 / ECHO程序 /的相关文章

WebSocket集成XMPP网页即时通讯1:Java Web Project服务端/客户端Jetty9开发初探

Web 应用的信息交互过程通常是客户端通过浏览器发出一个请求,服务器端接收和审核完请求后进行处理并返回结果给客户端,然后客户端浏览器将信息呈现出来,这种机制对于信息变化不是特别频繁的应用尚能相安无事,但是对于那些实时要求比较高的应用来说,比如说在线游戏.在线证券.设备监控.新闻在线播报.RSS 订阅推送等等,当客户端浏览器准备呈现这些信息的时候,这些信息在服务器端可能已经过时了.所以保持客户端和服务器端的信息同步是实时 Web 应用的关键要素,对 Web 开发人员来说也是一个难题.在 WebSo

红叶倾城一键网页游戏服务端+客户端(无须安装Java)源码

倾城的一键安装版服务端(包括客户端) , 无须安装Java,直接启动服务端就可进入游戏!!!新开服添加首个GM的方法:注册帐号并登陆游戏创建角色名称后,再服务端控制台中输入gmGrade 玩家角色名称 255即成功升级该角色为GM(注意输入的命令的大小写)//////////////////////////////////////////changeHeroLevel 玩家角色名称 级别/addPlayerTreasure 玩家角色名称 数量                /addGoods 物

PHP-Socket服务端客户端发送接收通信实例详解

Socket介绍 什么是socket 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 在Internet上的主机一般运行了多个服务软件,同时提供几种服务.每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务. Socket连接过程 根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认.

[javaSE] 网络编程(TCP服务端客户端互访阻塞)

客户端给服务端发送数据,服务端收到数据后,给客户端反馈数据 客户端: 获取Socket对象,new出来,构造参数:String的ip地址,int的端口号 调用Socket对象的getOutputStream()方法,获取到OutputStream对象 调用OutputStream对象的write()方法,输出流输出数据,参数:byte[]字节数组 调用Socket对象的getInputStream()方法,获取到InputStream对象 调用InputStream对象的read()方法,读取数

手机淘宝客应用(服务端+客户端+数据库)源码项目

欢迎大家光临我的个人网店:http://shop.662p.com/shop/view8.html 这是一款比较完整的应用源码,手机淘宝客应用(服务端+客户端+数据库),客户端是Java代码实现编程,另外服务端是采用了php的常见框架实现的,代码里面有一个sql文件是数据库导入文件 ,里面的apk是用来升级的版本 设置. 文件大小:10.94 MB 服务器:thinkphp 代码里面有一个sql文件是数据库导入文件 ,里面的apk是用来升级的版本 设置update.xml 用来跟之前安装的对比版

回显服务端/客户端

回显服务端/客户端 在这一章,我们将会实现一个小的客户端/服务端应用,这可能会是你写过的最简单的客户端/服务端应用.回显应用就是一个把客户端发过来的任何内容回显给其本身,然后关闭连接的的服务端.这个服务端可以处理任何数量的客户端.每个客户端连接之后发送一个消息,服务端接收到完成消息后把它发送回去.在那之后,服务端关闭连接. 因此,每个回显客户端连接到服务端,发送一个消息,然后读取服务端返回的结果,确保这是它发送给服务端的消息就结束和服务端的会话. 我们首先实现一个同步应用,然后实现一个异步应用,

WebService 服务端客户端 实例(一)

Delphi中WebService包含的组件解释(有7个)     (1) THTTPRIO-------:使用Http消息来调用远程使用SOAP的接口对象     (2) THTTPReqResp---:给服务器发送一个SOAP消息, THTTPReqResp在可调用接口上执行一个方法请求.       (3) TOPToSoapDomConvert ----:TOPToSoapDomConvert处理Soap方法请求的组合与分发     (4) TSoapConnection:TSoapCo

unity手游《摩卡世界online》全套源码(服务端+客户端+数据库)

unity手游<摩卡世界online>全套源码(服务端+客户端+数据库),客户端用unity3d开发,服务端用java开发,包含服务端源码.客户端源码.工具源码.数据库.配置搭建文档说明.编译好的文件等,解压后2.32G大小,要的速度下,过期不候. 摩卡世界是一款人气火热的休闲类手机网游,画面精致,出场人物造型各异,十分讨人喜爱,同时摩卡世界操作都是通过功能按钮的组合来完成,全拟真的操作规则和爽快的打击节奏让我们找回街机般的操作手感,华丽的必杀技.便捷的操作和流畅的画面,会让格斗爱好者爱不释手

TCP/IP网络编程之基于TCP的服务端/客户端(二)

回声客户端问题 上一章TCP/IP网络编程之基于TCP的服务端/客户端(一)中,我们解释了回声客户端所存在的问题,那么单单是客户端的问题,服务端没有任何问题?是的,服务端没有问题,现在先让我们回顾下服务端的I/O代码 echo_server.c --while ((str_len = read(clnt_sock, messag, 1024)) != 0) write(clnt_sock, messag, str_len);-- 接着,我们回顾客户端的代码 echo_client.c -- wr