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;}}
仅供参考!!
- java中socket编程
- java中Socket编程
- java中Socket编程
- Java中Socket编程
- java中Socket编程
- Java中socket编程
- java中Socket网络编程
- Java网络编程中socket编程
- java socket/Serversocket编程详解(中/英文)
- java socket/Serversocket编程详解(中/英)
- Java Socket编程中加入代理
- java socket/Serversocket编程详解(中/英文)
- java中socket网络编程总结
- java socket编程中backlog的含义
- java socket编程中readline问题
- java socket编程中readline问题
- Qt中socket编程
- android中socket编程
- 资料记录
- 浓缩人生的三句话
- 果断弃用Eclipse
- UVA 674 —— 简单DP
- 雷军给陈年总结的小米十条经验
- java中socket编程
- Birt开发遇到的问题
- 每天一到面试题(五)
- 分享下近一年iOS开发的经验总结
- QT中文乱码
- jQuery :eq,lt,gt
- c语言 字符数组 与 字符串
- C++读取*.bmp文件
- IOS变量设置、函数设置等