使用socket 将 服务器端和客户端通信的例子
2011-09-01 15:33
288 查看
1:服务器端代码
2:客户端代码
3:先运行客户端,再运行客户端。便可看到通信结果
import java.io.BufferedReader; import java.io.IOException; import java.io.PrintWriter; import java.net.*; import java.util.*; import java.io.*; public class ServerTest { final static int SERVER_PORT = 8001; public static void main(String[] args) { Server server; String clientRequest; BufferedReader reader; PrintWriter writer; server = new Server(SERVER_PORT); reader = new BufferedReader(new InputStreamReader(server.in)); writer = new PrintWriter(new OutputStreamWriter(server.out),true); writer.println("java test server v0.03"+ new Date()); while(true){ try{ clientRequest = reader.readLine(); System.out.println("client says:"+clientRequest); if(clientRequest.startsWith("HELP")){ writer.println(" vocabulary:HELP QUIT"); }else{ if(clientRequest.startsWith("QUIT")){ System.exit(0); }else{ writer.println("err : command "+clientRequest+"not understood"); } } }catch(IOException e){ System.out.println("IOEx IN server" + e); } } } } class Server{ private ServerSocket server; private Socket socket; public InputStream in; public OutputStream out; public Server(int port){ try { server = new ServerSocket(port); System.out.println("serverSocket before accept:"+server); System.out.println("java test server v0.03,on-line!"); socket = server.accept(); System.out.println("serversocket after accept:"+server); in = socket.getInputStream(); out = socket.getOutputStream(); } catch (IOException e1) { System.out.println("server constructor IOEx:"+e1); } } }
2:客户端代码
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; public class ClientTest { public static void main(String[] args) { String welcome,response; Client client; BufferedReader reader; PrintWriter writer; client = new Client("localhost",8001); try { reader = new BufferedReader(new InputStreamReader(client.in)); writer = new PrintWriter(new OutputStreamWriter(client.out),true); welcome = reader.readLine(); System.out.println("server says:"+ welcome); System.out.println("HELP"); writer.println("HELP"); response = reader.readLine(); System.out.println("server responds:"+response); System.out.println("QUIT"); writer.println("QUIT"); } catch (IOException e) { System.out.println("IOException in client.in.readln()"); e.printStackTrace(); } try{ Thread.sleep(2000); }catch(Exception ignored){} } } class Client{ public InputStream in; public OutputStream out; private Socket client; public Client(String host,int port){ try { client = new Socket(host,port); System.out.println("client socket:"+ client); in = client.getInputStream(); out = client.getOutputStream(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
3:先运行客户端,再运行客户端。便可看到通信结果
相关文章推荐
- Android 使用socket 实现简单的客户端和服务器端互相通信
- java使用UDP来进行客户端和服务器端通信的简单例子
- Android 使用mina框架 搭建socket客户端,进行与服务器端通信
- Android中使用Socket来实现服务器端和客户端,进行数据通信(使用原生Socket)
- android端和pc端使用usb进行socket通信,其中android是服务器端,pc是客户端。如何实现安卓端输入的数据通过按钮发送到pc端?
- 使用socketserver模块和socket模块模拟客户端和服务器端通信
- 使用socket连接实现客户端向服务器端的单向通信(socket通信第二弹)
- java使用UDP来进行客户端和服务器端通信的简单例子
- 使用 Socket 通信实现 FTP 客户端程序
- 服务器和客户端Socket单向通信例子
- 使用 Socket 通信实现 FTP 客户端程序
- Java中使用Socket实现服务器端和客户端通讯
- java-基本的Socket编程-实现服务器端和客户端通信
- Python网络编程之TCP通信实例和socketserver框架使用例子
- socket编程---服务器端与客户端简单通信
- C# Socket TCP简单例子(服务器与客户端通信)
- 多个客户端使用Socket通过一个服务器进行交互的小例子
- 使用 Socket 通信实现 FTP 客户端程序
- 使用 Socket 通信实现 FTP 客户端程序(二)
- socket通信例子_服务端写客户端读多线程写法