博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SOCKET_简单实现多人聊天
阅读量:7002 次
发布时间:2019-06-27

本文共 2713 字,大约阅读时间需要 9 分钟。

服务端:

package com.kk.review; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.List; class Server extends Thread{
static List
online=new ArrayList
(10); private Socket socket; public Server(Socket socket) {
this.socket=socket; } public static void main(String[] args) {
Server.receive(); } static void receive(){
try{
ServerSocket server=new ServerSocket(1234); for (;;) {
Socket socket=server.accept(); new Server(socket).start(); } }catch(IOException ioe){
ioe.printStackTrace(); } } @Override public void run() {
while(true){
try{
online.add(socket); InputStream in=socket.getInputStream(); byte []buf=new byte[1024]; int len=in.read(buf); String str=new String(buf,0,len); for(Socket client:online){
client.getOutputStream().write(str.getBytes()); } }catch(IOException ioe){
ioe.printStackTrace(); } } } }

 

 

客户端:

package com.kk.review; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; class Client extends Thread{
public static void main(String[] args) {
Client.send(); } static void send(){
try{
Socket client=new Socket(InetAddress.getByName(null),1234); OutputStream out=client.getOutputStream(); new Client().start(); // Scanner input=new Scanner(System.in); while(true){
Thread.sleep(500); BufferedReader bis=new BufferedReader(new InputStreamReader(System.in)); String str=bis.readLine(); out.write(str.getBytes()); } }catch(IOException ioe){
ioe.printStackTrace(); } catch (InterruptedException e) {
e.printStackTrace(); } } public void run() {
try{
Socket client=new Socket(InetAddress.getByName(null),1234); InputStream in=client.getInputStream(); for (;;) {
byte []buf=new byte[1024]; int len=in.read(buf); String str=new String(buf,0,len); System.out.println("from server:".concat(str)); } } catch(IOException ioe) {
ioe.printStackTrace(); } } }

 

转载于:https://www.cnblogs.com/BigIdiot/archive/2011/12/08/2281220.html

你可能感兴趣的文章
记一次virtualbox和夜神模拟器冲突的问题
查看>>
面向对象之多态、多态性
查看>>
简单标签-JspFragment和invoke()方法
查看>>
【原创】驱动卸载之ControlService函数
查看>>
1578: [Usaco2009 Feb]Stock Market 股票市场
查看>>
前端基本功(七):javascript中的继承(原型、原型链、继承的实现方式)
查看>>
原生的Ajax实现
查看>>
收集的几个jQuery插件
查看>>
java SSM 框架 微信自定义菜单 快递接口 SpringMVC mybatis redis shiro ehcache websocket
查看>>
[Unity] Shader(着色器)输入输出和语义
查看>>
Flutter学习之Dart语言基础(构造函数)
查看>>
条形码设计软件BarTender实用教程——模板对象常见问题解答
查看>>
Mongo Connector for BI
查看>>
关于mysql里的concat
查看>>
wcf基础(笔记)
查看>>
设置Eclipse中的tab键为4个空格的完整方法
查看>>
玩坏的Bad Apple之Vim
查看>>
常见的移动端H5页面开发遇到的坑和解决办法
查看>>
Xshell 主机和远程机之间的文件传输
查看>>
微信支付宝扫码支付相关接口
查看>>