客户端代码:

package com.bobohe.socket;

import java.io.*;

import java.net.*;

public class TalkClient {

    public static void main(String args[]) {

        try {

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

            // 向本机的4700端口发出客户请求

            BufferedReader sin = new BufferedReader(new InputStreamReader(
System.in)); // 由系统标准输入设备构造BufferedReader对象 PrintWriter os = new PrintWriter(socket.getOutputStream()); // 由Socket对象得到输出流,并构造PrintWriter对象 BufferedReader is = new BufferedReader(new InputStreamReader(
socket.getInputStream())); // 由Socket对象得到输入流,并构造相应的BufferedReader对象 String readline; readline = sin.readLine(); // 从系统标准输入读入一字符串 while (!readline.equals("bye")) { // 若从标准输入读入的字符串为 "bye"则停止循环 os.println(readline); // 将从系统标准输入读入的字符串输出到Server os.flush(); // 刷新输出流,使Server马上收到该字符串 System.out.println("Client:" + readline); // 在系统标准输出上打印读入的字符串 System.out.println("Server:" + is.readLine()); // 从Server读入一字符串,并打印到标准输出上 readline = sin.readLine(); // 从系统标准输入读入一字符串 } // 继续循环 os.close(); // 关闭Socket输出流 is.close(); // 关闭Socket输入流 socket.close(); // 关闭Socket } catch (Exception e) { System.out.println("Error" + e); // 出错,则打印出错信息 } } }

服务端代码:

package com.bobohe.socket;

import java.io.*;

import java.net.*;

import java.applet.Applet;

public class TalkServer {

    public static void main(String args[]) {

        try {

            ServerSocket server = null;

            try {

                server = new ServerSocket(4700);

                // 创建一个ServerSocket在端口4700监听客户请求

            } catch (Exception e) {

                System.out.println("can not listen to:" + e);

                // 出错,打印出错信息

            }

            Socket socket = null;

            try {

                socket = server.accept();

                // 使用accept()阻塞等待客户请求,有客户

                // 请求到来则产生一个Socket对象,并继续执行

            } catch (Exception e) {

                System.out.println("Error." + e);

                // 出错,打印出错信息

            }

            String line;

            BufferedReader is = new BufferedReader(new InputStreamReader(
socket.getInputStream())); // 由Socket对象得到输入流,并构造相应的BufferedReader对象 PrintWriter os = new PrintWriter(socket.getOutputStream()); // 由Socket对象得到输出流,并构造PrintWriter对象 BufferedReader sin = new BufferedReader(new InputStreamReader(
System.in)); // 由系统标准输入设备构造BufferedReader对象 System.out.println("Client:" + is.readLine()); // 在标准输出上打印从客户端读入的字符串 line = sin.readLine(); // 从标准输入读入一字符串 while (!line.equals("bye")) { // 如果该字符串为 "bye",则停止循环 os.println(line); // 向客户端输出该字符串 os.flush(); // 刷新输出流,使Client马上收到该字符串 System.out.println("Server:" + line); // 在系统标准输出上打印读入的字符串 System.out.println("Client:" + is.readLine()); // 从Client读入一字符串,并打印到标准输出上 line = sin.readLine(); // 从系统标准输入读入一字符串 } // 继续循环 os.close(); // 关闭Socket输出流 is.close(); // 关闭Socket输入流 socket.close(); // 关闭Socket server.close(); // 关闭ServerSocket } catch (Exception e) { System.out.println("Error:" + e); // 出错,打印出错信息 } } }

Socket通信的简单例子的更多相关文章

  1. AgileEAS.NET SOA 中间件平台.Net Socket通信框架-简单例子-实现简单的服务端客户端消息应答

    一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架介绍一文之中我们对AgileEAS.NET SOA ...

  2. 16 Socket通信(简单例子)

      服务端代码: import java.io.*; import java.net.ServerSocket; import java.net.Socket; import java.util.Da ...

  3. 170411、java Socket通信的简单例子(UDP)

    服务端代码: package com.bobohe.socket; import java.io.*; import java.net.*; class UDPServer { public stat ...

  4. 170410、java Socket通信的简单例子(TCP)

    服务端代码: package com.bobohe.socket; import java.io.*; import java.net.*; import java.applet.Applet; pu ...

  5. [转] 3个学习Socket编程的简单例子:TCP Server/Client, Select

    以前都是采用ACE的编写网络应用,最近由于工作需要,需要直接只用socket接口编写CS的代码,重新学习这方面的知识,给出自己所用到的3个简单例子,都是拷贝别人的程序.如果你能完全理解这3个例子,估计 ...

  6. java socket编程开发简单例子 与 nio非阻塞通道

    基本socket编程 1.以下只是简单例子,没有用多线程处理,只能一发一收(由于scan.nextLine()线程会进入等待状态),使用时可以根据具体项目功能进行优化处理 2.以下代码使用了1.8新特 ...

  7. 基于TCP的socket通信过程及例子

    Socket也叫套接字,用来实现网络通讯,通过调用系统提供的API,可以和远程的机子传输数据.Socket有很多种协议,而这篇文章主要讨论TCP部分的内容,也就是说后面说的内容主要是指TCP Sock ...

  8. php socket通信的简单实现

    socket通信的原理在这里就不说了,它的用途还是比较广泛的,我们可以使用socket来做一个API接口出来,也可以使用socket来实现两个程序之间的通信,我们来研究一下在php里面如何实现sock ...

  9. 我看不下去鸟。。。。Java和C#的socket通信真的简单吗?

    这几天在博客园上看到好几个写Java和C#的socket通信的帖子.但是都为指出其中关键点. C# socket通信组件有很多,在vs 使用nuget搜索socket组件有很多类似的.本人使用的是自己 ...

随机推荐

  1. mysql添加一个字段(

    mysql添加一个字段(在指定的一个字段后面) 举个栗子:alter table inquiry add error_code varchar(3) after add_time; 说明:alter ...

  2. Daily Scrum 11.19 部分测试报告

    下面是我们的部分测试报告: 功能测试部分: 1Exception in thread "Thread-11" java.lang.IllegalArgumentException: ...

  3. Scrum Meeting 10.26

    1.会议内容 姓名 今日任务 明日任务 预估时间(h) 徐越 学习服务器配置 配置SQLserver 4 卞忠昊 阅读代码 找上届代码的bug 3 武鑫 查阅资料 查阅资料,各种app的界面设计 3 ...

  4. 作业MathExam

    MathExam233 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 600 650 • ...

  5. java的第二个实验——JAVA面向对象程序设计

    java的第二个实验——JAVA面向对象程序设计 北京电子科技学院 实     验    报     告 课程:Java程序设计 班级:1352 姓名:林涵锦 学号:20135213 成绩:      ...

  6. Pl/sql学习笔记2

      -- declare type vsal_table is table of emp.sal%type; a vsal_table; begin --必须得初始化 并且有数量上的区分 从一开的 a ...

  7. CANOpen的几种操作以及数据

    其实3年前在21ic就准备做这篇文章了,那时,CANOpen也只是刚刚在国内推广,所以几乎没有项目用到.现在有了实际的项目,完全确认了以前移植和测试的代码,所以列举一些CANOpen的底层操作以及数据 ...

  8. poi excel导入 数字自动加小数点

    问题:导入excel表,若表格中为整数数字,不管单元格设置成数字格式还是文本格式,导入时都会出现小数点和0. 我遇到的问题是:一个名称,做测试数据的时候做了纯整形数字,发现了这个问题. 解决办法:在代 ...

  9. 『编程题全队』Alpha 阶段冲刺博客Day4

    1.每日站立式会议 1.会议照片 2.昨天已完成的工作统计 孙志威: 1.添加团队界面下的看板容器SlotWidget 2.实现SlotWidgets的动态布局管理 3.实现团队/个人界面之间的切换 ...

  10. HDU 2140 Michael Scofield's letter

    http://acm.hdu.edu.cn/showproblem.php?pid=2140 Problem Description I believe many people are the fan ...