C/S通信,实现多重及时连接通信
来源:互联网 发布:联通拨号软件 编辑:程序博客网 时间:2024/05/22 08:50
Server端
- import java.io.*;
- import java.net.*;
- public class Server {
- public static int num=0; //用于记录连接的数目
- static ServerSocket ss; //服务器端套接字
- static int len=0; //记录每次收到数据的长度
- public static void main(String[] args) {
- try {
- ss = new ServerSocket(3471);
- System.out.println("服务器启动完毕,等待客户端连接!");
- Runnable run = new Runnable() {
- public void run() {
- while(true) {
- try {
- Thread.sleep(10);
- final Socket client = ss.accept(); //接受客户端的连接
- System.out.println("客户端"+(++num)+"连接成功!");
- final InputStream in = client.getInputStream(); //获取客户端输入流
- final byte[] b = new byte[1024];
- Runnable innerRun = new Runnable() {
- public void run() {
- while(true) {
- try {
- Thread.sleep(10);
- if((len=in.read(b))>0) {
- String str = new String(b,0,len-1);
- //下面应实现转发,服务器相当于中转站,在此只做输出查看
- System.out.println("来自客户端"+client.getInetAddress().getHostAddress()+"的消息:"+str);
- }
- } catch(IOException e) {
- e.printStackTrace();
- } catch(InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- };
- new Thread(innerRun).start();
- } catch(IOException e) {
- e.printStackTrace();
- } catch(InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- };
- new Thread(run).start();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
Client端
- import java.io.*;
- import java.net.*;
- public class Client {
- public static void main(String[] args) {
- try {
- Socket s = new Socket("ip地址",3471); //ip地址是要连接的服务器的ip地址
- OutputStream out = s.getOutputStream();
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- String str = new String(); //向服务器发送消息
- while(true) {
- str = br.readLine();
- out.write((str+"/n").getBytes());
- }
- } catch (UnknownHostException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
实现了服务器与多个客户端同时连接,无规律交互通信,要想真正做出多方通信,应该实现转发功能,服务器端确定后,只需要提供对方ip。在此过程中应该做了先发到服务器,服务器再发到指定地点的处理,但对用户来说只需要提供对方ip即可,无需知道服务器地址。需要进一步的完善。
- C/S通信,实现多重及时连接通信
- 6. C/S实现对等通信
- java c/s通信
- C-S通信实验
- C/S通信
- XMPP 及时通信二
- Socket及时通信
- linux下Epoll实现简单的C/S通信
- 用socket简单实现C/S聊天通信
- linux下Epoll实现简单的C/S通信
- linux下Epoll实现简单的C/S通信
- VxWorks中基于消息队列实现C/S通信
- linux下Epoll实现简单的C/S通信
- linux下Epoll实现简单的C/S通信
- linux下Epoll实现简单的C/S通信(转载)
- 多进程并发C/S通信基本模型及实现
- 多线程并发C/S基本通信模型及实现
- linux下Epoll实现简单的C/S通信
- Eclipse3.2安装及汉化过程
- 二级展开式斜齿圆柱齿轮减速器
- 第一个测试用例题目。。
- 面向对象基础十
- 面向对象基础十一
- C/S通信,实现多重及时连接通信
- 有了自己的CSDN.NET 学习空间
- 2011 考研
- 读《算法之道》有感
- 动态生成列
- 关于字符的又一问题--已解决,与mysql有关
- 第一天
- go语言编程在windows下开发环境配置(图文)
- 图片轮流转换