一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

java socket 单客户端实例代码

时间:2013-09-18 编辑:简简单单 来源:一聚教程网

前两天学到类集框架,有点儿绕里面去了,所以暂时放一边,先来学习下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();
       
    }
}

热门栏目