java Socket和ServerSocket多线程编程
来源:互联网 发布:魔兽ac7.0数据库密码 编辑:程序博客网 时间:2024/06/10 06:38
这是在一本java教材上看到的,做了点修改。具体本教材记不清楚了,Sorry.放在这里,只是让自己需要的时候能够容易找到。
程序分两部分,服务端和客户端。先把服务端运行起来,在运行客户端。整个过程就是客户端想服务端发送String,服务端再返回。客户端的String由键盘输入得到。
服务器端。
客户端:
程序分两部分,服务端和客户端。先把服务端运行起来,在运行客户端。整个过程就是客户端想服务端发送String,服务端再返回。客户端的String由键盘输入得到。
服务器端。
- package net.tcp;
- 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 Server extends Thread
- {
- ServerSocket server = null;
- Socket sk = null;
- BufferedReader rdr = null;
- PrintWriter wtr = null;
- public Server()
- {
- try
- {
- server = new ServerSocket(1987);
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- }
- public void run()
- {
- while (true)
- {
- System.out.println("Listenning...");
- try
- {
- // 每个请求交给一个线程去处理
- sk = server.accept();
- ServerThread th = new ServerThread(sk);
- th.start();
- sleep(1000);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- }
- public static void main(String [] args)
- {
- new Server().start();
- }
- class ServerThread extends Thread
- {
- Socket sk = null;
- public ServerThread(Socket sk)
- {
- this.sk = sk;
- }
- public void run()
- {
- try
- {
- wtr = new PrintWriter(sk.getOutputStream());
- rdr = new BufferedReader(new InputStreamReader(sk
- .getInputStream()));
- String line = rdr.readLine();
- System.out.println("从客户端来的信息:" + line);
- // 特别,下面这句得加上 “\n”,
- wtr.println("你好,服务器已经收到您的信息!'" + line + "'\n");
- wtr.flush();
- System.out.println("已经返回给客户端!");
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- }
- }
- }
客户端:
- package net.tcp;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.io.PrintWriter;
- import java.net.Socket;
- public class Client extends Thread
- {
- Socket sk = null;
- BufferedReader reader = null;
- PrintWriter wtr = null;
- BufferedReader keyin = null;
- public Client()
- {
- keyin = new BufferedReader(new InputStreamReader(System.in));
- try
- {
- sk = new Socket("127.0.0.1", 1987);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- public void run()
- {
- try
- {
- reader = new BufferedReader(new InputStreamReader(sk
- .getInputStream()));
- wtr = new PrintWriter(sk.getOutputStream());
- String get = keyin.readLine();
- while (true)
- {
- if (get != null & get.length() > 0)
- {
- wtr.println(get);
- wtr.flush();
- // wtr.close();
- // System.out.println(get + "发送完毕");
- }
- if (reader != null)
- {
- String line = reader.readLine();
- System.out.println("从服务器来的信息:" + line);
- }
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- public static void main(String [] args)
- {
- new Client().start();
- }
- }
0 0
- java Socket和ServerSocket多线程编程
- Java网络编程(ServerSocket和Socket)
- JAVA: Socket和ServerSocket网络编程
- java网络编程:Socket和ServerSocket类
- Java Socket和ServerSocket编程 NIO
- Java Socket和ServerSocket
- [Java]Socket和ServerSocket
- Java Socket:单线程/多线程/线程池ServerSocket编程
- ServerSocket和Socket编程案例
- java socket BIO (ServerSocket,Socket,多线程)
- [Java]Socket和ServerSocket学习
- Java Socket 编程 Socket与ServerSocket
- java socket/Serversocket编程详解(中/英文)
- java socket/Serversocket编程详解(中/英)
- java 网络编程类 DatagramSocket,ServerSocket,Socket
- java socket/Serversocket编程详解(中/英文)
- 【Java学习笔记】39:简易Socket编程(基于java.net下的Socket和ServerSocket)
- [Java]Socket和ServerSocket学习笔记
- spark学习 —— 入门
- agrc argv解释
- 关于CoordinatorLayout与Behavior的一点分析
- 加了transform:translateX后position:fixed没效果
- Java小程序——汽车租赁
- java Socket和ServerSocket多线程编程
- u-boot编译
- 自定义控件三部曲之绘图篇(十八)——BitmapShader与望远镜效果
- 径向基函数神经网络
- Java Web前端到后台常用框架介绍
- 扣扣2013 解析和问题
- <自己动手写CPU>碰到的问题
- 自定义控件三部曲之绘图篇(十九)——LinearGradient与闪动文字效果
- 线程安全与可重入函数