码迷,mamicode.com
首页 > 编程语言 > 详细

java socket编程

时间:2015-06-28 15:19:04      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

模拟java scoket服务端和客户端编程

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class TalkClient {

    public static void main(String args[]) {
        try {
            // 向本机的8000端口发出客户请求
            Socket socket = new Socket("127.0.0.1", 8000);
            // 由系统标准输入设备构造BufferedReader对象
            BufferedReader sin = new BufferedReader(new InputStreamReader(
                    System.in));
            // 由Socket对象得到输出流,并构造PrintWriter对象
            PrintWriter os = new PrintWriter(socket.getOutputStream());
            String readline,receive;
            readline = sin.readLine(); // 从系统标准输入读入一字符串
            BufferedReader is = new BufferedReader(new InputStreamReader(
                    socket.getInputStream()));
            while (!readline.equals("bye")) {
                // 若从标准输入读入的字符串为 "bye"则停止循环
                os.println(readline);
                // 将从系统标准输入读入的字符串输出到Server
                os.flush();
                // 刷新输出流,使Server马上收到该字符串
                System.out.println("client send:" + readline);
                //Thread.sleep(1000);
                receive = is.readLine();
                System.out.println(receive);
                // 从Server读入一字符串,并打印到标准输出上
                readline = sin.readLine(); // 从系统标准输入读入一字符串
            } // 继续循环
            os.close(); // 关闭Socket输出流
            is.close(); // 关闭Socket输入流
            socket.close(); // 关闭Socket
        } catch (Exception e) {
        }
    }
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class TalkServer {

    public static void main(String args[]) {

        try {
            ServerSocket server = null;
            try {
                server = new ServerSocket(8000);
                // 创建一个ServerSocket在端口8000监听客户请求
            } 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对象
            line = is.readLine();
            // 从标准输入读入一字符串
            while (!line.equals("bye")) {
                // 如果该字符串为 "bye",则停止循环
                os.println("server send:yeah,"+line);
                // 向客户端输出该字符串
                os.flush();
                // 刷新输出流,使Client马上收到该字符串
                System.out.println("Server receive:" + line);
                // 从Client读入一字符串,并打印到标准输出上
                line = is.readLine();
                // 从系统标准输入读入一字符串
            }// 继续循环
            os.close(); // 关闭Socket输出流
            is.close(); // 关闭Socket输入流
            socket.close(); // 关闭Socket
            server.close(); // 关闭ServerSocket
        } catch (Exception e) {
        }
    }
}

 

java socket编程

标签:

原文地址:http://www.cnblogs.com/hellocyc/p/4605527.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!