java网络编程——Socket和ServerSocket,套接字编程——简单聊天室
来源:互联网 发布:中世纪2优化9挪威 编辑:程序博客网 时间:2024/05/17 01:41
一。客户端:Client.java
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.InetAddress;import java.net.Socket;import java.net.SocketException;import java.net.UnknownHostException;public class Client { public static void main(String[] args) throws SocketException { String readline = null; BufferedReader standard_in = null; //用于标准输入,从键盘输入数据 BufferedReader socket_in = null; //套接字输入流,用来接受服务器发送过来的数字 PrintWriter socket_out = null; //套接字输出流,将“标准输入流”中的数据写到socket输出流,用来向服务器发送数据 try{ Socket socket = new Socket("127.0.0.1", 4700);//4700是随便起的端口号 try{ standard_in = new BufferedReader(new InputStreamReader(System.in)); socket_in = new BufferedReader(new InputStreamReader(socket.getInputStream())); socket_out = new PrintWriter(socket.getOutputStream()); readline = standard_in.readLine(); while(!readline.equalsIgnoreCase("bye")){ socket_out.println(readline); socket_out.flush(); System.out.println("Client send data:\t"+readline); System.out.println("Client accept data:\t"+socket_in.readLine()); readline = standard_in.readLine(); } }catch(IOException E){ E.printStackTrace(); } //close resource standard_in.close(); socket_in.close(); socket_out.close(); socket.close(); }catch(UnknownHostException e){ e.printStackTrace(); } catch(IOException e){ e.printStackTrace(); } }}
二。服务器端 Server.java
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class Server { public static void main(String[] args) { ServerSocket serverSocket = null; Socket socket = null; BufferedReader in = null; BufferedReader sin = null; PrintWriter out = null; String line = ""; try{ serverSocket = new ServerSocket(4700); }catch(IOException e){ e.printStackTrace(); } try{ socket = serverSocket.accept(); }catch(IOException E){ System.out.println("can't connect the server"); E.printStackTrace(); } try { sin = new BufferedReader(new InputStreamReader(System.in)); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out = new PrintWriter(socket.getOutputStream()); // System.out.println("the server accept data:\t"+in.readLine()); line = sin.readLine(); while(!line.equalsIgnoreCase("bye")){ out.println(line); out.flush(); System.out.println("server send data:\t"+line); System.out.println("server accept date:\t"+in.readLine()); line = sin.readLine(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
三。测试
具体操作:客户端发送一条数据,服务器端就接受数据。同理,服务器端发送一条数据,客户端就接收数据。但是,这个只能客户端发送一次后必须切换让服务器发送数据,还不能连续发送多条数据。
0 0
- java网络编程——Socket和ServerSocket,套接字编程——简单聊天室
- java网络编程——Socket和ServerSocket,套接字编程——简单聊天室改进
- Java网络编程——Socket与ServerSocket
- Java网络编程——Socket与ServerSocket阻塞通信
- 网络编程——Socket(套接字)
- MFC:异步套接字编程举例—网络聊天室程序
- Java网络编程(ServerSocket和Socket)
- JAVA: Socket和ServerSocket网络编程
- java网络编程:Socket和ServerSocket类
- Windows Socket 网络编程—— 套接字编程原理
- 网络编程——Socket(Linux套接字编程)
- 网络编程——socket套接字编程(二)
- 网络编程——socket套接字编程(三)
- java BIO实例——ServerSocket、Socket编程
- linux网络编程——套接字(socket)入门
- 黑马程序员——Socket网络编程聊天室
- Java笔记(9)-网络编程、URL、InetAddress、套接字、Socket、ServerSocket、多线程、UDP、广播数据包、远程调用
- C# socket编程实践——简单聊天室
- 终于有人把P2P、P2C、O2O、B2C、B2B、C2C 的区别讲透了!
- QThread与QTimer使用注意
- ——黑马程序员——C语言中的指针(二)
- 单模式匹配KMP求匹配位置和匹配数目
- java中AWT和SWing的区别与联系
- java网络编程——Socket和ServerSocket,套接字编程——简单聊天室
- Javascript定义类(class)的三种方法
- ajaxfileupload 始终不执行success 只执行error方法;SyntaxError: expected expression, got '<
- opencv2中IplImage和Mat的相互转化
- iOS 【通过xib加载描述window根控制器的view】
- 3.2 ACM输入输出--多组测试用例--C、C++
- 整理Android各种框架文档
- [ahk]复制当前文件,并以当前文件夹名称命名
- 媒体的分类