java socket 单客户端实例代码

前两天学到类集框架,有点儿绕里面去了,所以暂时放一边,先来学习下socket编程,尝尝鲜。。。。
这是最基础的一对一的socket,服务端只能与一个客户端“发生关系”。。。编译运行服务端后,程序阻塞等待客户端连接。客户端编译运行后与本机服务端进行连接,然后等待用户输入信息。信息发送到服务端,在服务端打印输出,同时服务端又返回给客户端一则信息。客户端输入end时两端程序退出。
这是服务端程序。

 代码如下 复制代码

import java.io.*;
import java.net.*;

public class server {
    public static void main(String [] args) throws Exception {  //声明抛出异常
        //创建服务端的socket实例
        ServerSocket server = new ServerSocket(2345);
        //阻塞 监听端口的连接,如果有连接则创建socket实例
        Socket client = server.accept();
        //声明接收(输入流)实例 接收来自客户端的数据
        BufferedReader read = new BufferedReader( new InputStreamReader( client.getInputStream()));
        //声明发送(输出流)实例  将数据发送至连接的客户端
        PrintWriter   write = new PrintWriter( client.getOutputStream());
       
        //无限的执行请求
        while( true ) {
            //监听从客户端接收到的信息 如果有则读入一行
            String str = read.readLine();
            System.out.println("从客户端接收到:" + str);
            //向socket客户端发送信息
            write.println("这是来自服务端的信息:" + str);
            write.flush();  //刷新输出缓冲
            //如果接收的是end 退出。
            if(str.equals("end")) break;
        }
        write.close();  //关闭发送
        read.close();   //关闭接收
    }
}

这是客户端程序。

 代码如下 复制代码

import java.io.*;
import java.net.*;
public class client {
    public static void main(String [] arsg) throws Exception {
        //创建客户端实例
        Socket client = new Socket( InetAddress.getLocalHost(), 2345);
        //声明接收(输入流)
        BufferedReader read = new BufferedReader( new InputStreamReader( client.getInputStream()));
        //声明发送(输出流)
        PrintWriter   write = new PrintWriter( client.getOutputStream());
        //声明键盘输入流
        BufferedReader kbread = new BufferedReader( new InputStreamReader( System.in ));
       
        while( true ) {
            //从键盘获取一行输入
            String str = kbread.readLine();
            //发送
            write.println(str);
            write.flush();
            if(str.equals("end")) break;
            System.out.println(read.readLine());    //获取一次返回
        }
        System.out.println("退出连接!");
        read.close();
        write.close();
       
    }
}

时间: 2024-07-29 04:47:48

java socket 单客户端实例代码的相关文章

线程-使用Java socket让客户端与服务器建立连接后,服务器如何判断来自客户端的各类请求

问题描述 使用Java socket让客户端与服务器建立连接后,服务器如何判断来自客户端的各类请求 初学java,目前写了一个服务端和一个客户端.大致了解了如何socket通信是如何操作的,并且初步实现了客户端和服务端的通信.也仅仅是是接受和返回简单的字符串.部分代码如下 public void run(){ try{ serverSocket=new ServerSocket(SERVER_PORT_ONE); System.out.println("serversocket已创建"

Java 时间转换的实例代码_java

Java 时间转换的实例代码 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created by Edward on 2016/6/30. */ public class TimeUtil { /** * 将 1467341232351 转换为 指定格式 "yyyy-MM-dd HH:mm:ss.

AngularJs表单验证实例代码解析_AngularJS

常用的表单验证指令如下详情: 1. 必填项验证 某个表单输入是否已填写,只要在输入字段元素上添加HTML5标记required即可: <input type="text" required /> 2. 最小长度 验证表单输入的文本长度是否大于某个最小值,在输入字段上使用指令ng-minleng= "{number}": <input type="text" ng-minlength="5" /> 3.

java 画一个曲线实例代码(二款jsp绘制曲线实例)(1/2)

java 画一个曲线实例代码(二款网页特效phttp://www.111cn.net/网页特效p.html target=_blank >jsp教程绘制曲线实例) /* 参数名 描 述  画出模式 必需的: 整数型.参数值可以为以下常量: 6912.#点,将画出的多边形显示为点: 6913.#线,将画出的多边形显示为线段:   曲线起点 必需的: 整数型.参数值应该介于 0 和"设置曲线等分点"命令中的"u向等分数"之间.  曲线终点 必需的: 整数型.参数值

Java Web用户登录实例代码_java

实现功能: 1.用户登陆.注销 2.利用session记录用户登陆信息 3.在JSP中展示已登陆用户信息 实现原理: 登陆后通过判断用户名和密码是否和存储的一致,如果一致,就把用户信息放到session中储存:如果不一致就提示信息,并且返回登陆页面. 显示信息页面上固定从session中找用户登陆信息,找到就显示用户信息,没找到就显示登陆框. 注销很简单,就是清空session信息. 主要文件: 1.LoginAction:struts2的Action类,用于处理JAVA端的主要登陆和登出逻辑.

第七篇Bootstrap表单布局实例代码详解(三种表单布局)_javascript技巧

Bootstrap提供了三种表单布局:垂直表单,内联表单和水平表单.下面逐一给大家介绍,有兴趣的朋友一起学习吧. 创建垂直或基本表单: •·向父 <form> 元素添加 role="form". •·把标签和控件放在一个带有 class .form-group 的 <div> 中.这是获取最佳间距所必需的. •·向所有的文本元素 <input>.<textarea> 和 <select> 添加 class .form-cont

Android的Socket通讯编程实例代码

android客户端通过socket与服务器进行通信可以分为以下几步: 应用程序与服务器通信可以采用两种模式:TCP可靠通信 和UDP不可靠通信. (1)通过IP地址和端口实例化Socket,请求连接服务器:  代码如下 复制代码      socket = new Socket(HOST, PORT);   //host:为服务器的IP地址  port:为服务器的端口号 (2)获取Socket流以进行读写,并把流包装进BufferWriter或者PrintWriter:  代码如下 复制代码

jQuery表单事件实例代码分享_jquery

本文实例为大家分享了jQuery表单事件代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>表单事件</title> </head> <style type="text/css" rel="stylesheet">

JAVA实现异步调用实例代码_java

在JAVA平台,实现异步调用的角色有如下三个角色: 调用者 取货凭证   真实数据 一个调用者在调用耗时操作,不能立即返回数据时,先返回一个取货凭证.然后在过一断时间后凭取货凭证来获取真正的数据. 在调用一个方法的时候,程序会进入被调用方法体内,执行完这个被调用方法后,才返回执行下一条语句.怎么做到像ajax异步请求一样,发送请求后,没等请求响应就执行下一条语句呢?对于java的异步请求,找了许多教材都没有找到,如thinking in java.core java2 ......等等.受多线程