【转】TCP Socket编程-客户端和服务端双向通信
来源:互联网 发布:mac播放mkv的播放器 编辑:程序博客网 时间:2024/05/17 02:53
转自: http://www.myexception.cn/program/1045952.html
TCP Socket编程--客户端和服务端双向通信
好久没有写javaeye博客了,最近写了个TCP Socket编程,和大家一起分享!
服务端:
package test;import java.io.BufferedReader;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;public class TCPServer2 {/** * @param args * @throws IOException */public static void main(String[] args) throws IOException {new TCPServer2().go();}public void go(){ServerSocket ss;Socket s = null;try {ss = new ServerSocket(8888);s = ss.accept();} catch (IOException e) {e.printStackTrace();}SendThread send = new SendThread(s);new Thread(send).start();RecvThread recv = new RecvThread(s);new Thread(recv).start();}class SendThread implements Runnable{private Socket s = null;private DataOutputStream dos = null;public SendThread(Socket s){this.s = s;try {dos = new DataOutputStream(s.getOutputStream());} catch (IOException e) {e.printStackTrace();}}@Overridepublic void run() {String str = ""; while(true){System.out.println("input message:");BufferedReader br = new BufferedReader(new InputStreamReader(System.in));try {str = br.readLine();dos.writeUTF(str);if("bye".equals(str))break;} catch (IOException e) {e.printStackTrace();}}}}class RecvThread implements Runnable{private Socket s = null;private DataInputStream dis = null;public RecvThread(Socket s){this.s = s;try {dis = new DataInputStream(s.getInputStream());} catch (IOException e) {e.printStackTrace();}}@Overridepublic void run() {String str = "";while(true){try {str = dis.readUTF();if("bye".equals(str))break;System.out.println("received message:"+str);} catch (IOException e) {e.printStackTrace();}}}}}
客户端:
package test;import java.io.BufferedReader;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.net.Socket;import java.net.UnknownHostException;public class TCPClient2 {public static void main(String[] args) throws UnknownHostException, IOException{new TCPClient2().go();}public void go() {try {Socket s = new Socket("127.0.0.1",8888);RecvThread recv = new RecvThread(s);new Thread(recv).start();SendThread send = new SendThread(s);new Thread(send).start();} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}class RecvThread implements Runnable{private Socket s = null;private DataInputStream dis = null;public RecvThread(Socket s){this.s = s;try {dis = new DataInputStream(s.getInputStream());} catch (IOException e) {e.printStackTrace();}}@Overridepublic void run() {String str = "";while(true){try {str = dis.readUTF();if("bye".equals(str))break;System.out.println("received message:"+str);} catch (IOException e) {e.printStackTrace();}}}}class SendThread implements Runnable{private Socket s;private DataOutputStream dos;public SendThread(Socket s){this.s = s;try {dos = new DataOutputStream(s.getOutputStream());} catch (IOException e) {e.printStackTrace();}}@Overridepublic void run() {String str = "";while(true){System.out.println("input message:");BufferedReader br = new BufferedReader(new InputStreamReader(System.in));try {str = br.readLine();dos.writeUTF(str);if("bye".equals(str))break;} catch (IOException e) {e.printStackTrace();}}}}}
发布此文章仅为传递网友分享,不代表MyException.cn观点,若侵权请联系我们删除,MyException.cn将不对此承担任何责任。
0 0
- 【转】TCP Socket编程-客户端和服务端双向通信
- 【转】UDP Socket编程-客户端和服务端双向通信
- socket 编程之TCP服务端与客户端
- c语言socket双向通信+一服务端对多客户端通信
- Socket编程服务端和客户端代码
- 【网络编程】(五)NIO特点、实现客户端和服务端的单/双向通信
- 01 TCP Socket 编程_一个简单的服务端程序和客户端程序实现
- linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)
- Python tcp编程,TCP服务端和TCP客户端代码编写
- windows Socket编程之TCP服务端与客户端
- 4.Socket双向通信--客户端
- socket 客户端和服务端的TCP基本通信
- Socket的实现,服务端和客户端(TCP)
- 基于TCP协议的socket客户端和服务端
- Socket TCP 协议实现服务端和客户端的简单通信
- Socket编程_tcp客户端服务端
- linux下的tcp/udp服务端和客户端编程
- java网络编程(二) 客户端和服务端(TCP)
- 走进wordpress do_action函数
- ABAP 视图建立
- 原码, 反码, 补码 详解
- JVM调优工具集 - MAT
- Java与Http协议
- 【转】TCP Socket编程-客户端和服务端双向通信
- hihcoder:补提交卡
- Bean property 'username' is not readable or has an invalid getter method
- hibernate学习笔记
- 在Xcode中使用Git进行源码版本控制
- C# DEBUG 调试信息打印及输出详解
- HttpClient/HttpMime 4.3以后版本的中文编码和文件上传解决方案
- HDU 5015 233 Matrix(西安网络赛I题, 构造矩阵)
- Java EE学习笔记