Java基于Tcp的基础聊天功能实例

本文实例讲述了Java基于Tcp的基础聊天功能。分享给大家供大家参考,具体如下:

最基础的聊天,用户端和服务器端每次说一句,而且严格规定了先后到顺序。

服务器端:

import java.io.*;
import java.net.*;
public class ChatServer {
    public static void main(String[] args) {
        ServerSocket server = null;
        try {
            server = new ServerSocket(12138);
        } catch (IOException e) {
            System.out.println("error" + e);
        }
//        server = null;
        try {
            Socket ac = null;
//            ac = new Socket();
//            ac = null;
            ac = server.accept();
            BufferedReader is = null;
            is = new BufferedReader(new InputStreamReader(ac.getInputStream()));
            BufferedReader dis = new BufferedReader(new InputStreamReader(System.in));
            PrintWriter os = new PrintWriter(ac.getOutputStream());
            String line = null;
            System.out.println("clinent " + is.readLine());
            line = dis.readLine();
            while(!line.equals("bey")) {
                os.println(line);
                os.flush();
                System.out.println("server " + line);
                System.out.println("client " + is.readLine());
                line = dis.readLine();
            }
            os.close();
            dis.close();
            is.close();
            ac.close();
        } catch (Exception e) {
            System.out.println("error" + e);
        }
    }
}

用户端:

public class ChatClient {
    public static void main(String[] args) {
        Socket client = null;
        try {
            client = new Socket("127.0.0.1",12138);
            BufferedReader dis = new BufferedReader(new InputStreamReader(System.in));
            BufferedReader is = new BufferedReader(new InputStreamReader(client.getInputStream()));
            PrintWriter os = new PrintWriter(client.getOutputStream());
            String line = dis.readLine();
            while(!line.equals("bey")) {
                os.println(line);
                os.flush();
                System.out.println("client " + line);
                System.out.println("server " + is.readLine());
                line = is.readLine();
            }
            os.close();
            dis.close();
            is.close();
            client.close();
        } catch (Exception e) {
            System.out.println("error" + e);
        }
    }
}

无论是用户端还是服务器端都用了BufferedReader用来写入一些了连续的字符串,用PrintWriter进行输出。

注:BufferedWriter接收到的参数需要是字符类的数据流,所以要建一个inputStreamReader,而InputStreamReader的参数是数据流即可。

上面规定了写入的顺序是客户端先写,然后是服务器端;

注意要在循环结束的时候close个个数据流和端口。

更多关于java相关内容感兴趣的读者可查看本站专题:《Java Socket编程技巧总结》、《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

(0)

相关推荐

  • Java基于Tcp/ip连接的多人交互聊天室

    本文实例为大家分享了Java  Socket编程实现多人交互聊天室的具体代码,供大家参考,具体内容如下 本项目由三个.java文件(Client.java.Server.java.UI.java)和一个.jpg图片文件组成UI.java是负责界面的构成文件.本聊天室的界面极其简单.主要分为两个界面:第一个是启动时需要登陆的界面如下: 输入名字进去以后就可以直接聊天     这个聊天室相当于群聊,每一个登陆进去的人发的信息,其他人都会收到. 使用指南: 1.运行Server.java文件,保证服务

  • java学习之利用TCP实现的简单聊天示例代码

    TCP TCP协议是面向连接.保证高可靠性(数据无丢失.数据无失序.数据无错误.数据无重复到达)传输层协议. TCP通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯. 本文主要介绍了java利用TCP实现简单聊天的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 示例代码 使用tcp协议实现的简单聊天功能(非常简单的) 思想:使用2个线程,一个线程是用来接收消息的,另一个线程是用来发消息的. 客户端Demo代码: public

  • java实现简单TCP聊天程序

    本文实例为大家分享了java实现TCP聊天程序的具体代码,供大家参考,具体内容如下 服务端代码: package com.test.server; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class Server { public

  • java基于TCP协议实现聊天程序

    JAVA程序设计之基于TCP协议的socket聊天程序 ,供大家参考,具体内容如下 一.程序实现的功能 1.进入客户端界面 2.创建昵称 3.群发信息 4.@私聊 5.下线通知 6.在线人数统计 二.整体架构图 三.简单介绍 本程序实现了基于TCP通信的聊天程序: 1 服务器端: 服务器端继承JFrame框架,添加组件.创建服务器端的socket,起一个线程池,每接收到一个客户端的连接,分配给其一个线程处理与客户端的通信,将每个客户端的昵称和服务器分配给其的输出流存储到哈希表中.通过检索哈希表中

  • Java编程实现基于TCP协议的Socket聊天室示例

    本文实例讲述了Java编程实现基于TCP协议的Socket聊天室.分享给大家供大家参考,具体如下: 这里使用Socket套接字进行编程,完成的是基于TCP可靠服务实现服务器与客户端的双通信. Server服务器端: package com.han; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.Win

  • Java使用TCP套接字实现多人聊天功能详解

    本文实例讲述了Java使用TCP套接字实现多人聊天功能.分享给大家供大家参考,具体如下: 废话不多说,直接开搞: 先创建一个服务端: package interWebWriterEven2; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; /** * 服务端 * @author * */ public class ServiceT { static ArrayList<Socket

  • java实现一个简单TCPSocket聊天室功能分享

    本文实例为大家分享了java实现TCPSocket聊天室功能的相关代码,供大家参考,具体内容如下 1.TCPserver.java import java.net.*; import java.io.*; import java.util.*; import java.util.concurrent.*; public class TCPserver{ private static final int SERVERPORT = 8888; private ServerSocket MyServe

  • Java实现TCP/IP协议的收发数据(服务端)代码实例

    这篇文章主要介绍了Java实现TCP/IP协议的收发数据(服务端)代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 功能如下: 注: 只有服务端,没有客户端,测试时采用第三方软件作为客户端的. 收发数据目前能正常收发数据,只是中文的会变成乱码显示. 采用Thread类实现一个收发数据的线程. 服务端代码: import java.io.IOException; import java.io.InputStream; import java

  • java实现基于Tcp的socket聊天程序

    对于步入编程行业不深的初学者或是已经有所领会的人来说,当学习一项新的技术的时候,非常渴望有一个附上注释完整的Demo.本人深有体会,网上的例子多到是很多,但是很杂不完整,写代码这种东西来不得半点马虎,要是错了一点,那也是运行不了的.这对于初学者来说更加的头疼,因为他根本不知道错在哪里,盲目的改只能错上加错.最后不得不去找找看看有没有能够直接运行的例子再加以模仿. 下面是博主在学习Java的socket时写的一个完整的例子,并且带上了完整的注释.它是一个简单的聊天程序,但是它可以设置任意多用户同时

  • java Tcp通信客户端与服务器端实例

    本文实例讲述了java Tcp通信客户端与服务器端.分享给大家供大家参考,具体如下: 由服务器端发送数据 服务器端: import java.io.*; import java.net.*; public class TestSocket { public static void main(String[] args) { try { ServerSocket ss = new ServerSocket(8888); while(true) { Socket s = ss.accept(); O

  • Java使用TCP实现在线聊天的示例代码

    客户端的代码: package tcp.http; import java.io.*; import java.net.*; import java.util.Scanner; public class Client{ public static void main(String[] args) throws IOException{ Scanner scanner=new Scanner(System.in); //1.创建Socket Socket tcpClientSocket=new S

随机推荐