多线程Socket编程
来源:互联网 发布:小说 超级基因优化液 编辑:程序博客网 时间:2024/04/30 20:28
刚刚使用多线程知识和Socket编程知识简单的编了一个程序:echo程序
功能:将客户端ID和提交给服务器的内容返回给客户端
//服务器端:
package demo5;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
ServerSocket ssocket;
int id = 0;// 标记客户端ID
public Server() throws IOException {
ssocket = new ServerSocket();
ssocket.setReuseAddress(true);
ssocket.bind(new InetSocketAddress(888));
System.out.println("服务器已经启动");
}
public void service() throws IOException {
Socket socket = null;
int count = 1;
while (count <= 3) {
count++;
socket = ssocket.accept();
id++;
new MyThread(socket, id).start();
}
}
public static void main(String args[]) throws IOException {
new Server().service();
}
}
class MyThread extends Thread {
Socket socket;
int id;
public MyThread(Socket socket, int id) {
this.socket = socket;
this.id = id;
}
public void run() {
BufferedReader br = GetIO.getReader(socket);
PrintWriter pw = GetIO.getWriter(socket);
String msg;
try {
while ((msg = br.readLine()) != null) {
pw.println("echo[" + id + "]" + msg);
pw.flush();
if (msg.equals("bye"))
break;
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
br.close();
pw.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//客户端:
package demo5;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public Client(){
try{
Socket socket = new Socket("localhost", 888);
System.out.println("已连接……");
BufferedReader br = GetIO.getReader(socket);
BufferedReader localbr = new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw = GetIO.getWriter(socket);
String msg;
while ((msg = localbr.readLine()) != null) {
pw.println(msg);
pw.flush();
System.out.println(br.readLine());
if (msg.equals("bye"))
break;
}
br.close();
localbr.close();
pw.close();
socket.close();
}catch(UnknownHostException ex){}
catch(IOException ioex){}
}
public static void main(String[] args) {
new Client();
}
}
运行结果://粗体字为用户输入部分
已连接……
hello world
echo[3]hello world
bye
echo[3]bye
- 多线程Socket编程
- 多线程的socket编程
- Socket 多线程编程
- socket多线程的编程
- java socket多线程编程
- 多线程下SOCKET编程
- socket编程示例(多线程)
- 多线程的 socket 编程
- java socket多线程编程
- java socket 多线程编程
- socket网络编程多线程
- socket多线程编程
- 多线程Java Socket编程示例
- C# Socket多线程编程实例
- C# Socket多线程编程实例
- 多线程Java Socket编程示例
- 多线程Java Socket编程示例
- 多线程Java Socket编程示例
- vk键值对应码表
- PHP 变量与类
- 《谈星文化》的“华人群星新春大联欢”收视率高吗!!!!
- oracle 定时脚本
- 把汉字转换成拼音第一个字母
- 多线程Socket编程
- linux下快捷操作总结
- Hibernate HQL 语法大全(下)
- 查找相同名的进程
- linux内核源代码学习(5)内存页面的换入换出
- How to use the CONVERSION_EXIT_PARVW_INPUT and CONVERSION_EXIT_PARVW_OUTPUT
- 软件竞争升级 营销策划成杀手锏
- 道cpu、道指令、道编程基本原理16
- 将office文档(word,excel,powerpoint)转换为pdf