JAVA学习笔记(网络编程 之 socket)
2013-05-16 21:50
771 查看
一共三个文件;
如下:
1.MultiTalkServer
2.TalkClient
3.ServerThread
如下:
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
- [零散篇]Java学习笔记---Java的Socket网络编程以及多线程
- 【Java学习笔记】23.网络编程--Socket
- [零散篇]Java学习笔记---Java的Socket网络编程以及多线程
- Java 网络编程 学习笔记二 Socket 用法
- java网络编程学习笔记(三):ServerSocket详解
- Java网络编程学习笔记(3)ServerSocket用法详解
- 学习笔记 Java_网络编程_UDP 2014.7.20
- 黑马程序员--Java基础学习笔记【单例设计模式、网络编程、反射】
- Java学习笔记之网络编程基础-通过URL获取网络图片
- java网络编程---socket用法详解(学习心得)
- java学习笔记——socket编程
- java网络编程学习笔记(四):线程池的实现
- Java网络编程学习笔记(四)Internet地址
- Java学习笔记(七、网络编程基础)
- Java学习笔记之网络编程基础-通过URLConnection获取HTML页面
- 转 网络编程学习笔记一:Socket编程
- Java 网络编程 TCP vs UDP -Java学习笔记(31)
- Java笔记(9)-网络编程、URL、InetAddress、套接字、Socket、ServerSocket、多线程、UDP、广播数据包、远程调用
- Java学习笔记----网络编程(一):获取IP地址和域名