49 Java socket 2
来源:互联网 发布:淘宝欠下贷款怎么协商 编辑:程序博客网 时间:2024/06/08 09:04
import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;import java.util.ArrayList;public class MyServer {public static ArrayList<Socket> socketList=new ArrayList<>();public static void main(String[] args) throws IOException {ServerSocket ss=new ServerSocket(3000);while(true){//慈航代码会阻塞,将一直er等待别人的连接Socket s=ss.accept();socketList.add(s);//每当客户端连接后启动一个ServerThread线程为该客户端服务new Thread(new ServerThread(s)).start();;}}}
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.Socket;public class ServerThread implements Runnable{//定义当前线程所处理的SocketSocket s=null;//该线程所处理的Scoket对应的输入流BufferedReader br=null;//构造方法public ServerThread(Socket s) throws IOException{this.s=s;//初始化该Socket 对应的输入流br=new BufferedReader(new InputStreamReader(s.getInputStream()));}@Overridepublic void run() {// TODO Auto-generated method stubtry {String content=null;//采用循环不断的从Socket中读取客户端发送过来的数据while ((content=readfromClient())!=null){//遍历socketList 中的每一Socket//就爱那个独到的内容想每个Socket发送一次for(Socket s:MyServer.socketList){PrintStream ps=new PrintStream(s.getOutputStream());ps.println(content);}}} catch (IOException e) {// TODO: handle exceptione.printStackTrace();}}/** * 定义读取客户端数据的方法 * @return */public String readfromClient() {// TODO Auto-generated method stubtry {return br.readLine();//如果捕获异常,则表明该Socket 对应的客户端已经关闭} catch (Exception e) {// TODO: handle exceptionMyServer.socketList.remove(s);}return null;}}
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.Socket;public class MyClient {public static void main(String[] args) throws IOException {Socket s=new Socket("127.0.01", 3000);//客户端启动ClientThread 线程不断的读取来自服务器的数据new Thread(new ClientThread(s)).start();PrintStream ps=new PrintStream(s.getOutputStream());String line=null;BufferedReader br=new BufferedReader(new InputStreamReader(System.in));while((line=br.readLine()) != null){//将用户的键盘输入内容写入Socket对应的输出流ps.println(line);}}}
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.Socket;public class ClientThread implements Runnable {//该项称负责处理的Socket private Socket s;//该线程所处理的Socket对应的输入流BufferedReader br=null;public ClientThread(Socket s) throws IOException{this.s=s;br=new BufferedReader(new InputStreamReader(s.getInputStream()));}@Overridepublic void run() {// TODO Auto-generated method stubtry {String content=null;//不断的读取Socket 输入流中的内容,并将这些内容打印输出while((content=br.readLine())!=null){System.out.println(content);}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}}
0 0
- 49 Java socket 2
- Java Socket 2
- java socket (2)
- JAVA-socket通信基础(2)
- JAVA-socket通信基础(2)
- java TCP socket编程2
- Java Socket编程2--例子
- java socket-2--即时通信
- JAVA Socket编程学习2
- java socket (-) 简单socket
- Java Socket
- java-socket
- java socket
- Java Socket
- JAVA Socket
- Java Socket
- socket(java)
- Java Socket
- canvas 使用细节
- 平板蓝牙测试与移植
- c++ 自加(自减)运算符--后++或--为什么要返回一个const?
- 研究生开题总结
- Mysql 日期函数
- 49 Java socket 2
- AE10.0开发中,要素类出现乱码问题
- create tablespace命令报错的解决方法
- Lua编译错误小结
- jquery取span内容
- 12.6柱状图生成器
- Linux ps 命令
- 剑灵快速升级
- Qt for Android 配置详细 (Windows下的)