Socket 多线程通信
来源:互联网 发布:sql语句求和1到50 编辑:程序博客网 时间:2024/05/19 23:55
Socket 通信
1-Socket:socket的通信建立,由两部分来实现,分别是:ServerSocket 和 Socket;ServerSocket负责监听 (accept)Socket端的连接请求,并接收数据流(根据指定 port 和 host);在ServerSocket端也建立一个Socket来和Socket端进行通信;
服务端实现-
package com.bdc;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;import java.util.Scanner;public class SocketChatServers {private int port;//设置 连接 端口public SocketChatServers(int port){this.port = port;}//业务处理public void service() throws IOException{int i = 0;ServerSocket serverSocket = new ServerSocket(port,3);//建立 Socket 服务while(true){Socket socket = serverSocket.accept();//等待 Socket 连接System.out.println("第"+(++i)+"个客户已连接...");new ServerSocketThread(socket).start();}}public static void main(String[] args) throws IOException {new SocketChatServers(9001).service();}} class ServerSocketThread extends Thread{private Socket socket ;public ServerSocketThread(Socket socket){this.socket = socket;}@Overridepublic void run(){DataInputStream dis = null;DataOutputStream dos = null;try {dis = new DataInputStream(socket.getInputStream());dos = new DataOutputStream(socket.getOutputStream());Scanner scan = new Scanner(System.in);while(true){String sendToClient = scan.nextLine();dos.writeUTF(sendToClient);System.out.println("服务器 说:"+sendToClient);String accept = dis.readUTF();System.out.println("客户端 说"+accept);}} catch (IOException e) {e.printStackTrace();}finally{try {dis.close();dos.close();socket.close();} catch (IOException e) {e.printStackTrace();}}}}客户端实现-
</pre></p><p align="left"><span style="font-size:18px;"><span style="font-size:24px;"><span style="font-size:18px;"></span></span></span><pre name="code" class="java">package com.bdc;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.ConnectException;import java.net.Socket;import java.net.UnknownHostException;import java.util.Scanner;public class SocketChatClient {private String host;//主机 ipprivate int port;//连接 端口public SocketChatClient(String host,int port){this.host = host;this.port = port;}public void client() throws ConnectException{Socket socket = null ;//建立 Socket 连接DataInputStream dis = null;DataOutputStream dos = null;try {socket = new Socket(host,port);//连接 Socket服务器dis = new DataInputStream(socket.getInputStream());dos = new DataOutputStream(socket.getOutputStream());Scanner scan = new Scanner(System.in);while(true){String sendToServer = scan.nextLine();dos.writeUTF(sendToServer);System.out.println("客户端 说: "+sendToServer);String accept = dis.readUTF();System.out.println("服务器 说: "+accept);}}catch (ConnectException e) {System.err.println("**** 连接 异常 ****");}catch(IOException e){System.err.println("**** IO 异常 ****");}finally{ try {dis.close();dos.close();socket.close();} catch (IOException e) {e.printStackTrace();}}}public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.err.println("请输入要登录的host :");String host = scan.nextLine();System.err.println("请输入连接 Port :");int port = scan.nextInt();try {new SocketChatClient(host, port).client();} catch (ConnectException e) {System.err.println("**** 连接 异常 ****");}}}
请输入要登录的host :
localhost
请输入连接 Port :
9001
hello
客户端 说: hello
1 0
- 多线程异步Socket通信
- 多线程socket通信client
- 多线程socket通信server
- Socket 多线程通信
- 多线程socket通信server
- 多线程Socket通信
- Socket通信-accept+多线程
- Java Socket通信(多线程)
- Java Socket多线程通信例子
- java模拟多线程socket通信
- socket多线程服务器网络通信
- 自己实现的socket多线程通信
- 调试posix多线程 socket网络通信有感
- Java Socket实战之二 多线程通信
- Java Socket实战之二 多线程通信
- 阻塞模式下socket多线程通信
- Java Socket实战之二 多线程通信 .
- Java Socket实战之二 多线程通信
- linux 无法图形化 在字符界面安装Gnome桌面
- 表达式求值(中缀式转后缀式,后缀式求值)NYOJ53测试通过
- Objective-C基础笔记(1)基本概念和第一个程序
- 1004. 成绩排名 (20)
- HDU1024 Max Sum Plus Plus(DP)
- Socket 多线程通信
- UIAlertView和UIActionSheet的IOS8兼容
- Maven之——Nexus私服
- 第十一周项目4
- 多目标跟踪-Multi-Object Tracking
- FPAG学习笔记:BCD码驱动2位数码管(动态扫描)
- Oracle—decode函数行转列
- ARM开发板在WIN7系统下USB无法识别解决方案。
- gets();getschar();fget();