服务器(TCPServer.java):

package visec;
import java.net.*;
import java.io.*; public class TCPServer{
public static void main(String[] args) throws Exception{
ServerSocket ss = new ServerSocket(5566); //创建一个Socket服务器,监听1001端口
System.out.println("1001端口开启~~");
int i=0;
//利用死循环不停的监听端口
while(true){
Socket s = ss.accept();//利用Socket服务器的accept()方法获取客户端Socket对象。
i++;
System.out.println("第" + i +"个客户端成功连接!");
Client c = new Client(i,s); //创建客户端处理线程对象
Thread t =new Thread(c); //创建客户端处理线程
t.start(); //启动线程
}
}
}
//客户端处理线程类(实现Runnable接口)
class Client implements Runnable{
int clientIndex = 0; //保存客户端id
Socket s = null; //保存客户端Socket对象 Client(int i,Socket s){
clientIndex = i;
this.s = s;
}
public void run(){
//打印出客户端数据
try{
DataInputStream dis = new DataInputStream(s.getInputStream());
System.out.println("第" + clientIndex + "个客户端发出消息:" + dis.readUTF());
dis.close();
s.close();
}
catch(Exception e)
{}
}
}

客户端(TCPClient.java):

package visec;
import java.net.*;
import java.io.*; public class TCPClient{
public static void main(String[] args) throws Exception{
Socket s = new Socket("192.168.0.129",5566); //创建一个Socket对象,连接IP地址为192.168.0.129的服务器的5566端口
DataOutputStream dos = new DataOutputStream(s.getOutputStream()); //获取Socket对象的输出流,并且在外边包一层DataOutputStream管道,方便输出数据
Thread.sleep((int)(Math.random()*200)); //让客户端不定时向服务器发送消息
dos.writeUTF("客户端消息--Msg"); //DataOutputStream对象的writeUTF()方法可以输出数据,并且支持中文
dos.flush(); //确保所有数据都已经输出
dos.close(); //关闭输出流
s.close(); //关闭Socket连接
}
}

Socket 一对多通信的更多相关文章

  1. 使用TCP/IP的套接字(Socket)进行通信

    http://www.cnblogs.com/mengdd/archive/2013/03/10/2952616.html 使用TCP/IP的套接字(Socket)进行通信 套接字Socket的引入 ...

  2. java socket实现全双工通信

    java socket实现全双工通信 单工.半双工和全双工的定义 如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工. 如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方 ...

  3. Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信

    链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/10/2952616.html 使用TCP/IP的套接字(Socket)进行通信 套接字Socke ...

  4. linux c使用socket进行http 通信,并接收任意大小的http响应(四)

    终于说到SOCKET 这里了.SOCKET进行http通信的实际就是利用socket将http请求信息发送给http服务器,然后再利用socket接收http响应. 由于本文与之通信的服务器是ip已知 ...

  5. linux c使用socket进行http 通信,并接收任意大小的http响应(三)

    使用socket进行http通信的时候,浏览器返回的响应经常不是固定长度的,有时候很大,有些时候又非常小,十分讨厌.如果仅仅只是为了接收一小段信息,设置一个十分大的缓存,这样又会十分浪费.而且经常更改 ...

  6. socket上http协议应用(使用socket进行http通信的例子,准备好报头以后,简单read/write就可以了)

    前几天看socket本有点晕, 好不容易弄明白了,才发现公司服务器用的是http的. 找了好久也没发现linux下直接用http的api, 不过今日偶然发现了使用socket进行http通信的例子, ...

  7. Flex Socket与Java通信实例说明(转)

    Flex Socket与Java通信实例说明(转) 这两天一直在flex的Socket ,现在终于懂了很多.由浅到深一步一步深入.慢慢体会实例,虽然实例都是在网上找的,但也经过了我的测试.我比较喜欢注 ...

  8. Python网络编程02 /基于TCP、UDP协议的socket简单的通信、字符串转bytes类型

    Python网络编程02 /基于TCP.UDP协议的socket简单的通信.字符串转bytes类型 目录 Python网络编程02 /基于TCP.UDP协议的socket简单的通信.字符串转bytes ...

  9. 网络编程: 基于TCP协议的socket, 实现一对一, 一对多通信

    TCP协议  面向连接 可靠的 面向字节流形式的 tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 TCP协议编码流程: 服务器端:                 客户端 实例化对 ...

随机推荐

  1. BochsDebug

    Bochs User Manual   Chapter 8. Tips and Techniques   8.12. Using Bochs internal debugger Note, if yo ...

  2. 软件工程 speedsnail 冲刺3

    2015-5-7 完成任务:环境崩溃,重新配置环境,学习了黑马android教学视频前6集: 遇到问题: 问题1 Error: Error parsing C:\Users\sam\.android\ ...

  3. 《第一行代码--Android》阅读笔记之界面设计

    1.单位dp.dip.sp.pt.px.in.mm 这里引用StackOverFlow上的一个解答: px is one pixel. sp is scale-independent pixels. ...

  4. [leetcode]_Best Time to Buy and Sell Stock I && II

    一个系列三道题,我都不会做,google之答案.过了两道,第三道看不懂,放置,稍后继续. 一.Best Time to Buy and Sell Stock I 题目:一个数组表示一支股票的价格变换. ...

  5. html5制作一个时钟

    试着用html5写一个时钟 记得开始这个随笔是几天前,一直保存在草稿里面,一直感觉有个东西搁在在那里,所以今天熬夜也要写完这篇博客!!!哈哈...不多说来上代码和思路. --------------- ...

  6. php敏感词过滤

    在项目开发中发现有个同事在做敏感词过滤的时候用循环在判断,其实是不用这样做的,用php的数组函数和字符串函数即可实现 function filterNGWords($string) { $badwor ...

  7. AsyncTask的简单使用

    package com.zzw.life; import android.app.Activity; import android.os.AsyncTask; import android.os.Bu ...

  8. delphi 2010是动画GIF的支持方法

    下面delphi 2010是动画GIF的支持方法:  1.在窗体上放一个Image1控件.注意:这时设置其Picture属性,加载一幅动画GIF是不会动画显示的.  2.在窗体的FormCreate事 ...

  9. C# 添加系统计划任务方案

    你可以在Windows 计划任务管理器里面添加计划任务,调试OK后导出XML文件,然后在要部署的计算机上执行CMD导入命令,把计划任务信息配置导入到服务器上的计划任务列表中,命令如下: SCHTASK ...

  10. spark 集合交集差集运算

    intersect except是spark提供的集合差集运算, 但是要求参与运算的两个dataframe,有相同的data Schema. 如果我想从 集合1(attribute1, attribu ...