java网络编程之Tcp协议下的聊天小程序

原创 2016年08月29日 21:29:02

需求:服务端和客户端实现一句一句的聊天。

服务端

package com.itheima;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;



public class MyChatService {
    public static void main(String[] args) throws IOException {
        // 获取serverSocket的服务
        ServerSocket serverSocket = new ServerSocket(9090);
        // 获取socket
        Socket socket = serverSocket.accept();
        // 获取socket输入流包装
        BufferedReader bufferdreader = new BufferedReader(
                new InputStreamReader(socket.getInputStream()));

        // 获取标准的输入流包装
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                System.in));

        // 获取 输出流包装成buffered
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
                socket.getOutputStream()));
        //判断从客户端发来的信息是否为空,输入信息,写信息
        String str = "";
        while ((str = bufferdreader.readLine()) != null) {

            System.out.println("客户端发来消息:"+str);
            str =reader.readLine();
            writer.write(str + "\r\n");
            writer.flush();
        }
        serverSocket.close();


    }
}

客服端

package com.itheima;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.security.KeyRep;

import javax.xml.ws.handler.MessageContext.Scope;

/*
发消息给服务端
接受服务端的消息
*/
public class MyChatClient {
public static void main(String[] args) throws IOException, IOException {
// 创建socket的服务
Socket socket = new Socket(InetAddress.getLocalHost(), 9090);

    // 获得标准输入流,并包装
    BufferedReader bufferedReader = new BufferedReader(
            new InputStreamReader(System.in));
    // 获得流对象的输出流
    BufferedWriter bufferedWriter = new BufferedWriter(
            new OutputStreamWriter(socket.getOutputStream()));
    // 读取输入流中的数据如果不等于空,写信息。输入信息。

// bufferedWriter.write(“hello 服务端 \r\n”);
// bufferedWriter.flush();

    // 获取socket的输入流,包装并输出
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    socket.getInputStream()));

    //如果流服务器,接受的数据不等于空,读出socket数据,写标准流数据        
    String str = "";
    while ((str = bufferedReader.readLine()) != null) {

        bufferedWriter.write(str + "\r\n");
        bufferedWriter.flush();

        str = reader.readLine();
        System.out.println("服务端发来消息:"+str);


    }
    socket.close();
}

}

相关文章推荐

仿QQ聊天程序(java)

仿QQ聊天程序 转载请标明出处:牟尼的专栏 http://blog.csdn.net/u012027907 一、设计内容及要求 1.1综述 A.系统概述 我们要做的就是类...

java网络编程(一)使用TCP协议完成客户端与服务端的数据传递

java网络编程(一)使用TCP协议完成客户端与服务端的数据传递
  • canot
  • canot
  • 2016年01月26日 14:59
  • 10486

一个用Java写的简单的TCP聊天程序

服务端代码: package com.test.server; import java.io.DataInputStream; import java.io.DataOutputStream; i...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Java——多人聊天室(基于TCP的网络编程——Socket)

Java——多人聊天室(基于TCP的网络编程——Socket) 服务端源代码: import java.awt.BorderLayout; import java.awt.event.Actio...

Java基于Tcp的socket聊天程序

下面是博主在学习Java的socket时写的一个完整的例子,并且带上了完整的注释。它是一个简单的聊天程序,但是它可以设置任意多用户同时登录,然后相互两两交流。博主仅仅在自己电脑上实现同时登录,然后两两...

Java TCP 简单聊天

Server package org.zbq; import java.net.ServerSocket; import java.net.Socket; public class Serve...

java Socket多线程聊天程序(适合初学者)

一个非常简单的java聊天程序,有客户端和服务器端,目前只有群聊功能,其他的所有功能都可以在这个基础上添加,现在我分享出来主要是为了保持一个最简单的java聊天程序便于初学者学习,界面也非常的简洁,只...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java网络编程之Tcp协议下的聊天小程序
举报原因:
原因补充:

(最多只允许输入30个字)