JAVA学习笔记(网络编程 之 socket)
来源:互联网 发布:潮州好玩的地方 知乎 编辑:程序博客网 时间:2024/05/17 03:04
一共三个文件;
如下:
1.MultiTalkServer
package socket;import java.io.*;import java.net.*;import socc.ServerThread;;public class MultiTalkServer {static int clientnum = 0;static int part = 4700;public static void main(String[] args) throws IOException {System.out.println("服务端开始执行!");ServerSocket serverSocket = null;boolean listening = true;try{serverSocket = new ServerSocket(part);}catch (IOException e){System.out.println("coutld not listen on part :" + part);System.exit(-1);}while(listening){new ServerThread(serverSocket.accept(),clientnum).run();clientnum ++;}serverSocket.close();}}
2.TalkClient
package socket;import java.io.*;import java.net.*;public class TalkClient {public static void main(String[] args) {System.out.println("客户端开始执行!");try{//监听ip为..的端口为4700的Socket socket = new Socket("122.207.221.46",4700);BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));// 从socket流得到消息创建对象,有发送到服务端的作用PrintWriter os = new PrintWriter(socket.getOutputStream());//从socket流得到消息创建对象,有从服务端得到消息的作用BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));String readline;readline = sin.readLine();while(!readline.equals("byebye")){os.println(readline);os.flush();System.out.println("Client :" + readline);System.out.println("Server :" + is.readLine() + "(此消息来自服务端)"); //输出从服务端发来的消息readline = sin.readLine();}os.close();is.close();socket.close();}catch (Exception e){System.out.println("Error :" + e);}}}
3.ServerThread
package socc;import java.io.*;import java.net.*;public class ServerThread {Socket socket = null;int clientnum;public ServerThread(Socket socket, int num){this.socket = socket;this.clientnum = num + 1;}public void run(){try{System.out.println("进程开始执行!");String line;//从socket对象得到输入流,并创建BufferedReader对象,这个对象的作用是从客户端得到消息BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));//从socket对象得到输出流,并创建PrintWriter对象,这个对象的作用是从服务端发送消息到客户端PrintWriter os = new PrintWriter(socket.getOutputStream());//创建一个从控制台得到输入流的流BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));System.out.println("client :" + clientnum + is.readLine() + "(来自客户端)");//从客户端得到消息并输出line = sin.readLine();while(! line.equals("byebye")){System.out.println("一个新的进程开始执行!");os.println(line);os.flush();System.out.println("Server :" + line);System.out.println("client :" + clientnum + is.readLine()); //从客户端得到消息并输出line = sin.readLine();}os.close();is.close();sin.close();socket.close();}catch (Exception e){System.out.println("Error: " + e);}}}
- JAVA学习笔记(网络编程 之 socket)
- 网络编程之SOCKET编程学习笔记
- java网络编程之socket编程笔记
- 学习笔记之SOCKET网络编程
- Java学习笔记--网络编程Socket
- 【Java学习笔记】23.网络编程--Socket
- Java网络编程学习笔记(五)客户端Socket
- Java网络编程学习笔记(六)服务器Socket
- 网络编程学习笔记(一)-----socket
- Socket网络编程学习笔记(转)
- Socket网络编程学习笔记
- Socket网络编程学习笔记
- Socket网络编程学习笔记
- 学习笔记之SOCKET网络编程之二
- 网络编程 Socket 【java笔记】
- 网络编程之Socket通信(Java)
- Android学习笔记 Android网络编程之Socket&Http
- Java 网络编程 学习笔记二 Socket 用法
- HDU2086:A1 = ?
- Android Studio IDEA:基于IDEA的安卓开发环境
- 求出32位整数左边第一位是1的算法
- lua实现美国电话号码生成函数
- stgOpenStorage读取word文档
- JAVA学习笔记(网络编程 之 socket)
- hdu 2896 病毒侵袭 (AC自动机)
- 【转】全记录:马化腾在GMIC上对话的13个要点
- 网站性能优化原则
- struts2通过基于XML的配置实现校验没有提示信息
- JavaEE 13种核心技术
- 一起学mini2440裸机开发(八)--Nand Flash原理与基础实验
- 2011年安联杯安徽省青少年信息学奥林匹克竞赛(中学组试题)
- java反射应用--动态创建和访问数组