java中socket编程

来源:互联网 发布:软件开源平台 编辑:程序博客网 时间:2024/05/22 07:55

由于工作中会遇到Socket编程,网上找了下原理,下面写了个单线程的!!

下面是客户端代码:

public class TcpSocketClientTest {/** * @param args */public static void main(String[] args) throws Exception{// TODO Auto-generated method stubtry{java.net.Socket socket = new java.net.Socket("127.0.0.1",9787);//往服务器端发送数据java.io.OutputStream outputStream = socket.getOutputStream();java.io.DataOutputStream dataOutputStream = new java.io.DataOutputStream(outputStream);//从服务器端读取数据java.io.InputStream inputStream = socket.getInputStream();java.io.DataInputStream dataInputStream = new java.io.DataInputStream(inputStream); String msg = null;while(true){msg = clientSay();if(msg != null && !"exit".equalsIgnoreCase(msg) && !"quit".equalsIgnoreCase(msg)){//首先往服务器发数据System.out.println("客户端发给服务端:"+msg);dataOutputStream.writeUTF(msg);//然后从服务器端收数据msg = dataInputStream.readUTF();System.out.println("客户端收到服务端:"+msg);}else{dataOutputStream.writeUTF("client:"+"ByeBye");inputStream.close();dataInputStream.close();socket.close();return;}}}catch(Exception e){e.printStackTrace();}}private static String clientSay(){java.io.InputStreamReader inputStreamReader = new java.io.InputStreamReader(System.in);java.io.BufferedReader bufferReader = new java.io.BufferedReader(inputStreamReader);String msg = null;try{msg = bufferReader.readLine();}catch(java.io.IOException e){e.printStackTrace();}return msg;}}


下面是服务端代码:

public class TcpSocketServerTest {/** * @param args */public static void main(String[] args) throws Exception{// TODO Auto-generated method stubtry{java.net.ServerSocket serverSocket = new java.net.ServerSocket(9787);java.net.Socket socket = serverSocket.accept();//从客户端读取数据java.io.InputStream inputStream = socket.getInputStream();java.io.DataInputStream dataInputStream = new java.io.DataInputStream(inputStream);//往客户端发送数据java.io.OutputStream outputStream = socket.getOutputStream();java.io.DataOutputStream dataOutputStream = new java.io.DataOutputStream(outputStream);String msg = null;while(true){msg = dataInputStream.readUTF();if(msg != null && !"exit".equalsIgnoreCase(msg) && !"quit".equalsIgnoreCase(msg)){System.out.println("服务端收到客户端:"+msg);msg = serverSay();System.out.println("服务端发给客户端:"+msg);dataOutputStream.writeUTF(msg);}else{inputStream.close();dataInputStream.close();socket.close();return;}}}catch(Exception e){e.printStackTrace();}}private static String serverSay(){java.io.InputStreamReader inputStreamReader = new java.io.InputStreamReader(System.in);java.io.BufferedReader buffReader = new java.io.BufferedReader(inputStreamReader);String msg = null;try{msg = buffReader.readLine();}catch(java.io.IOException e){e.printStackTrace();}return msg;}}


仅供参考!!

 

原创粉丝点击