`
javasee
  • 浏览: 965078 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Socket 群聊

阅读更多

Server 代码

package com;

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

public class Server {
 public static void main(String[] args) throws Exception {
  ServerSocket server = new ServerSocket(8001);
  List<Socket> ss = new ArrayList<Socket>();
  while (true) {
   Socket socket = server.accept();
   ss.add(socket);
   new ServerThread1(socket).start();
  }
  // socket.close();
  // server.close();
 }
}

class ServerThread1 extends Thread {
 private Socket socket;

 public ServerThread1(Socket socket) {
  this.socket = socket;
 }

 public void run() {
  PrintWriter out = null;
  BufferedReader in = null;
  try {
   out = new PrintWriter(socket.getOutputStream());
   in = new BufferedReader(new InputStreamReader(socket
     .getInputStream()));

   String s = in.readLine();
   System.out.println(s + "上线了");
   out.println(s + "上线了");
   out.flush();

   s = in.readLine();
   while (s != null && !s.equals("quit")) {

    System.out.println(s);

    out.println(s);

    out.flush();

    s = in.readLine();
   }
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   try {
    in.close();
    out.close();
    socket.close();
   } catch (Exception e) {

   }
  }
 }
}

Client代码

package com;

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

public class Client {

 public static void main(String[] args) throws Exception {
  Socket socket = new Socket("127.0.0.1", 5001);
  //
  BufferedReader sin = new BufferedReader(
    new InputStreamReader(System.in));
  PrintWriter out = new PrintWriter(socket.getOutputStream());
  String cname = args[0];
  out.println(cname);
  out.flush();
  new ClientThread1(socket).start();//

  String c = sin.readLine();
  while (!c.equals("quit")) {
   out.println(cname + "说:" + c);
   out.flush();
   c = sin.readLine();
  }

  out.close();
  socket.close();
 }
}

class ClientThread1 extends Thread {
 private Socket socket;

 public ClientThread1(Socket socket) {
  this.socket = socket;
 }

 public void run() {
  BufferedReader in = null;
  try {
   in = new BufferedReader(new InputStreamReader(socket
     .getInputStream()));
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  while (true) {
   String s;
   try {
    s = in.readLine();
    System.out.println(s);
   } catch (IOException e) {
    // TODO Auto-generated catch block
    // e.printStackTrace();
    break;
   }
  }
 }
}

3
0
分享到:
评论
1 楼 hzxlb910 2013-03-21  
没跑起来
Exception in thread "main" java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at com.Client.main(Client.java:10)

相关推荐

    socket群聊实例

    在这个“socket群聊实例”中,我们将探讨如何使用Java的Socket和ServerSocket类构建一个简单的多人聊天系统。 首先,服务器端的实现至关重要。`ServerSocket`类在Java中用于监听客户端的连接请求。你需要创建一个`...

    socket群聊

    "Socket群聊"项目就是利用Socket来构建一个可以支持多用户同时在线聊天的应用。在这个项目中,观察者模式(Observer Pattern)被巧妙地融入,以处理用户间的实时消息传递和状态更新。 首先,我们需要理解Socket的...

    socket编程(实现群聊功能+界面清晰)

    本项目以"socket编程(实现群聊功能+界面清晰)"为主题,旨在创建一个支持多客户端实时交流的群聊系统,同时提供了图形用户界面(GUI)以提高用户体验。以下是关于这个项目的一些关键知识点和实现细节: 1. **...

    Win32项目 C++利用socket实现C/S客户端间群聊和私聊

    在本文中,我们将深入探讨如何在Win32平台上利用C++和Socket技术构建一个C/S架构的聊天应用程序,实现客户端间的群聊和私聊功能。首先,我们需要了解几个关键概念和关键技术。 1. **Win32 API**:Windows操作系统...

    socket,多线程实现群聊

    本文将深入探讨如何利用多线程和Socket技术来实现一个简单的群聊应用。这个应用包括两个主要部分:服务端(Server)和客户端(Client)。 首先,我们要理解Socket的概念。Socket是网络上的进程间通信(IPC)的一种...

    C# Socket群聊

    研究了一个多星期socket 写了个局域网群聊的小程序,, 分服务端,,,客户端(可多开),,,代码比较乱,但有注释, 给大家看看有什么不足的地方 告诉小弟我,,qq623932737 email:623932737@qq.com

    Socket网络编程实例

    7. **聊天室逻辑**:聊天系统可能包含用户注册、登录、群聊、私聊等功能。这些功能的实现需要额外的数据结构(如队列或数据库)来存储和检索消息,以及控制用户权限。 8. **安全性**:考虑使用SSL/TLS加密通信,以...

    socket单聊 群聊 发送文件

    本项目标题为"socket单聊 群聊 发送文件",这意味着它利用Java的Socket库构建了一个具备基本聊天功能的应用,包括一对一的单聊、多用户参与的群聊以及文件传输。下面将详细介绍这些知识点: 1. **Java Socket**: ...

    socket实现群聊效果

    该demo实现了客户端与服务器端的通信,实现了类似于群聊的效果。no demo no true!!

    express_socket_demo 群聊功能

    `express_socket_demo`是一个基于Express和Socket.IO的示例项目,它演示了如何在Web应用中实现群聊功能。Express是Node.js中广泛使用的Web框架,而Socket.IO则是一个强大的库,用于实现实时双向通信。下面我们将详细...

    java 利用scoket实现多个客户端之间的群聊

    通过以上步骤,我们可以构建一个基本的Java Socket群聊系统。每个客户端都可以独立地发送和接收消息,而服务器作为中介,确保了消息的正确传递。当然,为了提升用户体验,还可以添加更多的功能,如用户名注册、在线...

    Socket局域网群聊.zip

    Socket局域网群聊是一个基于C#编程语言和WPF(Windows Presentation Foundation)技术实现的多客户端通信系统,它利用了Socket技术构建了一个简单的聊天服务器,使得多个客户端可以在同一个局域网内进行实时的消息...

    socket+swing局域网群聊系统

    在这个“socket+swing局域网群聊系统”项目中,我们看到这两个技术的结合,为初学者提供了一个很好的实践平台。 首先,让我们详细了解一下Socket编程。Socket是网络编程的基础,它提供了应用程序之间通信的端点。在...

    javaSocket带界面聊天室

    Java Socket 是一种在Java编程语言中实现网络通信的基础工具,常用于构建客户端-服务器应用程序。在这个"javaSocket带界面聊天室"项目中,开发者利用Java的Socket类和Swing库创建了一个具有图形用户界面(GUI)的...

    java,socket聊天,单聊,群聊,传文件,加密聊天和传文件

    Java Socket聊天程序是一种基于TCP/IP协议的网络通信方式,它允许两台计算机通过互联网进行双向通信。在这个项目中,我们看到的是一个使用Java Swing库构建的图形用户界面(GUI)应用,它集成了多种功能,如单聊、...

    socket编程实现简单私聊群聊源码

    在本示例中,"socket编程实现简单私聊群聊源码" 涉及到的是如何使用Socket来构建一个基本的聊天应用程序,包括一对一的私聊和多用户参与的群聊功能。 首先,Socket是操作系统提供的接口,它允许应用程序通过网络...

    c# socket编程 一个简单的模拟QQ聊天软件 可以群聊

    本项目“C# Socket编程:一个简单的模拟QQ聊天软件”就是一个很好的示例,它展示了如何利用Socket实现多人在线聊天功能,类似于QQ的群聊。 首先,让我们深入了解Socket。Socket是网络通信的基础,它为应用程序提供...

    群聊功能 网络编程 套接字 socket qq 多线程

    多线程 群聊功能 网络编程 套接字 socket 实现群聊功能

Global site tag (gtag.js) - Google Analytics