Java socket 双向通信
来源:互联网 发布:洛丽塔 知乎 编辑:程序博客网 时间:2024/06/09 13:54
简单的一个socket通信
//客户机package Client;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.Socket;import java.net.UnknownHostException;import java.util.Scanner;public class Client { public static void main(String args[]){ String host= "172.31.18.85"; int port=65200; PrintWriter pw ; BufferedReader br; String CilentSay; String temp; try { Socket socket = new Socket(host,port); //状态提示 System.out.println("你已经成功链接服务端。。。"); Scanner in = new Scanner(System.in); while(true){ //接受来自服务器的消息 br = new BufferedReader(new InputStreamReader(socket.getInputStream())); temp =br.readLine(); System.out.print(" 主服务器发来消息:"); System.out.println(temp); //向服务起发送消息 pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()))); System.out.print(" 向主服务器发消息:"); CilentSay=in.nextLine(); pw.println(CilentSay); pw.flush(); } } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
//服务器package Server;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.Scanner;public class Server { public static void main(String args[]){ PrintWriter pw; String temp; String serverSay; BufferedReader br; try { ServerSocket serversocket = new ServerSocket(65200); System.out.println("服务器启动了..."); Socket socket = serversocket.accept(); System.out.println("客户机链接服务器"); Scanner in =new Scanner(System.in); while(true){ //向客户机发送消息 pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()))); System.out.print(" 向客户机发消息:"); serverSay=in.nextLine(); pw.println(serverSay); pw.flush(); //接受来自客户机的消息 br = new BufferedReader (new InputStreamReader(socket.getInputStream())); temp = br.readLine(); System.out.print(socket.getInetAddress()+" 发来消息:"); System.out.println(temp); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
遇到的困惑
这个socket用了一晚上才写出来,一直只能单向通讯,或者每次只能互发一条消息,最后我将我的发送消息的代码
`while(in.hasNext()){
serverSay=in.nextLine();
pw.println(serverSay);
pw.flush();}
改 成
serverSay=in.nextLine(); pw.println(serverSay); pw.flush();
去掉那个循环就能实现多次双向通信,有知道的同学请评论一下,向你请教一下。
阅读全文
0 0
- Java - socket双向通信例子
- Java socket 双向通信
- socket 双向通信
- 4.Socket双向通信--服务器端
- 4.Socket双向通信--客户端
- Linux下socket双向通信
- Socket编程(多线程、双向通信)
- Socket编程(多线程、双向通信)
- Socket编程(多线程、双向通信)
- socket 双向通信(有界面)
- Socket编程(多线程、双向通信)
- Socket服务器与客户端双向通信实例
- Android Socket编程(多线程、双向通信)
- C++实现局域网双向通信(socket)
- Java中利用socket实现简单的服务端与客户端的通信(中级)——实现任意双向通信
- Java-Soket实现客户端与服务端双向通信
- 13-6-7 android Socket客户端client双向通信的编写
- 【笔记】两台Android手机的Socket双向通信
- IntelliJ IDEA Community Edition使用初体验
- Ubuntu中mysql安装
- 双十一套路总结
- 字符串匹配算法
- macos使用小知识
- Java socket 双向通信
- 09:明明的随机数
- 不重复随机数列算法思路
- Effective Java -- 消除过期的对象引用
- Java文件操作①——XML文件的读取
- unity 《专题系列》资源打包 Asset Bundles 第一节 Asset Bundles 介绍
- 【Java 并发】对象的共享
- PMP考试常用缩写汇总
- ios-摇一摇功能实现