Java Socket编程 标准范例(多线程)
来源:互联网 发布:硕鼠下载器 mac 编辑:程序博客网 时间:2024/05/06 13:24
服务器端(Server)非多线程
- package com.zeph.serverclient;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.PrintWriter;
- import java.net.ServerSocket;
- import java.net.Socket;
- public class MyServer {
- public static void main(String[] args) throws IOException {
- ServerSocket server = new ServerSocket(5678);
- Socket client = server.accept();
- BufferedReader in = new BufferedReader(new InputStreamReader(
- client.getInputStream()));
- PrintWriter out = new PrintWriter(client.getOutputStream());
- while (true) {
- String str = in.readLine();
- System.out.println(str);
- out.println("has receive....");
- out.flush();
- if (str.equals("end"))
- break;
- }
- client.close();
- }
- }
客户端(Client)
- package com.zeph.serverclient;
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.io.PrintWriter;
- import java.net.InetAddress;
- import java.net.Socket;
- public class MyClient {
- static Socket server;
- public static void main(String[] args) throws Exception {
- server = new Socket(InetAddress.getLocalHost(), 5678);
- BufferedReader in = new BufferedReader(new InputStreamReader(
- server.getInputStream()));
- PrintWriter out = new PrintWriter(server.getOutputStream());
- BufferedReader wt = new BufferedReader(new InputStreamReader(System.in));
- while (true) {
- String str = wt.readLine();
- out.println(str);
- out.flush();
- if (str.equals("end")) {
- break;
- }
- System.out.println(in.readLine());
- }
- server.close();
- }
- }
服务器端(Server)多线程
- package com.zeph.multiclient;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.PrintWriter;
- import java.net.ServerSocket;
- import java.net.Socket;
- public class MultiClient extends Thread {
- private Socket client;
- public MultiClient(Socket c) {
- this.client = c;
- }
- public void run() {
- try {
- BufferedReader in = new BufferedReader(new InputStreamReader(
- client.getInputStream()));
- PrintWriter out = new PrintWriter(client.getOutputStream());
- // Mutil User but can't parallel
- while (true) {
- String str = in.readLine();
- System.out.println(str);
- out.println("has receive....");
- out.flush();
- if (str.equals("end"))
- break;
- }
- client.close();
- } catch (IOException ex) {
- } finally {
- }
- }
- public static void main(String[] args) throws IOException {
- ServerSocket server = new ServerSocket(5678);
- while (true) {
- // transfer location change Single User or Multi User
- MultiClient mc = new MultiClient(server.accept());
- mc.start();
- }
- }
- }
测试这个代码的时候可以直接用DOS控制台上面运行,这样看的效果更清楚!
服务器基本步骤:
1.指定端口实例化一个SeverSocket
2.调用ServerSocket的accept()方法,以在等待连接期间造成阻塞
3.获取位于该底层的Socket的流以进行读写操作
4.将数据封装成流
5.对Socket进行读写
6.关闭打开的流
客户端基本步骤:
1.通过IP地址和端口实例化Socket,请求连接服务器
2.获得Socket上的流以进行读写
3.把流封装进BufferedReader/PrintWriter的实例
4.对Socket进行读写
5.关闭打开的流
0 0
- Java Socket编程 标准范例(多线程)
- Java Socket编程 标准范例(多线程)
- Java Socket编程 标准范例(多线程)
- Java Socket编程 标准范例(多线程)
- Java Socket编程 标准范例(多线程)
- Java Socket编程 标准范例(多线程)
- Java Socket编程 标准范例(多线程)
- Java Socket编程 标准范例(多线程)
- Java Socket编程 标准范例(多线程)
- Java Socket编程 标准范例(多线程)
- java socket编程范例
- [Java] Java Socket编程范例
- python多线程在socket编程中的应用(代码范例)
- java socket多线程编程
- java socket多线程编程
- java socket 多线程编程
- Java socket编程(单线程socket,多线程socket)
- Socket编程基础范例
- debian下手动安装nginx/php/mysql
- android监听全局监听
- 第一篇
- ImageLoader 加载图片
- 删除重复数字,java
- Java Socket编程 标准范例(多线程)
- unity调用Android剪切板基于Android studio
- HDFS学习笔记(2)HDFS运行机制
- 安卓支付相关
- linux/eclipse/c++ 动态库的创立与调用
- 追梦从兴趣开始
- 反序进阶版,java
- GDT,GDTR,LDT,LDTR的学习
- 获取Storyboard里面的单独控制器