【转】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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 热羊奶糊锅怎么办 山姆会员亲友卡怎么办 门面门口修路房租怎么办 快手直播不推送怎么办 小孩出豆子发热怎么办 嘴巴边长痘痘怎么办 种四天豆子没出怎么办 吃了豆子放屁怎么办 ios11软件不兼容怎么办 手机安装不上怎么办 opp0商店没有了怎么办 华硕打不开机怎么办 飞利浦电视待机打不开怎么办 微信支付扫码牌怎么办 微信付款没扣钱怎么办 移动充值卡有效期到了怎么办 联华提货券过期怎么办 狗吃了西红柿怎么办 加盟总店关了怎么办 欧亚超市购物卡怎么办 欠招行信用卡一万多逾期怎么办 白条取现失败怎么办 啤酒喝醉了难受怎么办 喝啤酒喝醉头疼怎么办 运动鞋鞋子大了怎么办 运动鞋买大一号怎么办 跑鞋买大了怎么办 鞋子大一个手指怎么办 一体式手机死机怎么办 ivvi手机声音小怎么办 单位欠缴社保怎么办 哆点错误代码1怎么办 忘记密码怎么办简单一点 智校园忘记密码怎么办 wps图片显示空白怎么办 dr.com闪退怎么办 联想笔记本连不上无线网络怎么办 长时间不用电池休眠怎么办? 校园电信卡欠费怎么办 校园联通卡欠费怎么办 校园网等不上怎么办