基于tcp的socket通信(单个客户端与服务端)
来源:互联网 发布:电脑软件怎么恢复 编辑:程序博客网 时间:2024/05/17 17:16
//先启动服务端,创建8888端口号(一般采用系统1023之后的),监听,如果存在通信返回socket,获得该socket字节流,转化为字符流并用bufferedreader缓冲,随后打印出服务端接收到的信息,同时回复客户端信息,最后关闭资源。
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;//服务端public class server {public static void main(String []args){try {//1创建一个服务器端socket,即serversocketServerSocket serversocket=new ServerSocket(8888);//2,调用accept的方法进行监听,这边会阻塞Socket socket=serversocket.accept();InputStream is=socket.getInputStream();//获得字节流BufferedReader br=new BufferedReader(new InputStreamReader(is));//字节流转化为字符流并添加缓冲String info=null;while((info=br.readLine())!=null){System.out.println("我是服务端,客户端说:"+info);}socket.shutdownInput();//必须要及时关闭,因为readline这个方法是以\r\n作为界定符的,由于发送消息的那一端用的是PrintWriter的write()方法,这个方法并没加上\r\n,所以会一直等待//回复客户端OutputStream os=socket.getOutputStream();PrintWriter pw=new PrintWriter(os);pw.write("欢迎您!");pw.flush();pw.close();os.close();br.close();is.close();//关闭返回的 InputStream 将关闭关联套接字。 socket.close();serversocket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}//再启动客户端,需要给定访问的ip地址和端口号,然后写入信息,并接受服务端信息(这部分与上面正好颠倒),最后关闭资源。
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.Socket;import java.net.UnknownHostException;//基于tcp协议的socket通信,客户端public class client {public static void main(String[] args) {try {Socket socket=new Socket("127.0.0.1",8888);//创建客户端socket,因为是本地,ip地址就是127.0.0.1OutputStream os=socket.getOutputStream();PrintWriter pw=new PrintWriter(os);pw.write("用户名:admin;密码:123");pw.flush();socket.shutdownOutput();//必须加上这句话,表示输出流的结束,注意此时不能关闭os,因为关闭os会关闭绑定的socket//在客户端获取回应信息InputStream is=socket.getInputStream();BufferedReader br=new BufferedReader(new InputStreamReader(is));String info=null;while((info=br.readLine())!=null){System.out.println("我是客户端,服务端说:"+info);}br.close();is.close();pw.close();os.close();socket.close();} catch (UnknownHostException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
0 0
- 基于tcp的socket通信(单个客户端与服务端)
- 基于tcp协议的socket客户端与服务端的通信-java
- linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)
- 基于socket的简单tcp客户端与服务端程序
- 客户端与服务端的Socket通信
- socket客户端与服务端的通信
- 客户端与服务端的TCP通信实现(Qt)
- Windows客户端与Android服务端的Socket通信(USB)
- java实现基于TCP的socket通信实例(客户端)
- socket通信 客户端与服务端
- 利用Tcp和socket实现的客户端与服务端的简单通信
- socket 客户端和服务端的TCP基本通信
- Socket TCP 协议实现服务端和客户端的简单通信
- socket实现客户端与服务端通信(一)服务端
- socket实现客户端与服务端通信(三)服务端升级
- 基于TCP协议的socket客户端和服务端
- socket实现客户端与服务端通信(二)客户端
- Socket(Tcp)通信服务端
- 欢迎使用CSDN-markdown编辑器
- Invalid author specified. Please use the form: A U Thor <author@example.com>的解决方案
- 我的第一篇博客
- 机器学习实践系列之6 - OpenCV实战光流
- 数据挖掘工具及流程(一)
- 基于tcp的socket通信(单个客户端与服务端)
- 巴什博奕
- MacPro终端命令
- vue.js开发环境搭建
- PHP错误Notice : Use of undefined constant 的完美解决方法
- 新年新开始
- 对字符串做单词逆序
- TCP、UDP、HTTP、Socket、HttpUrlConnection、HttpClient、Volley、OkHttp之间关系
- Java嵌入式数据库H2学习总结(二)——在Web应用程序中使用H2数据库