JAVA Socket简介

所谓socket 通常也称作”套接字“,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过”套接字”向网络发出请求或者应答网络请求

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;public class Client {
public static void main(String[] args) {try {Socket socket = new Socket("localhost", 8080);//1.创建客户端Socket,指定服务器地址和端口//2.获取输出流,向服务器端发送信息OutputStream os = socket.getOutputStream();//字节输出流PrintWriter pw = new PrintWriter(os);//将输出流包装为打印流pw.write("用户名:whf;密码:789");pw.flush();socket.shutdownOutput();//关闭输出流//3.获取输入流,并读取服务器端的响应信息InputStream is = socket.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(is));String info = null;while ((info = br.readLine()) != null) {System.out.println("我是客户端,服务器说:" + info);}//4.关闭资源br.close();is.close();pw.close();os.close();socket.close();} catch (Exception e) {// TODO: handle exception}
}
}

  

import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;public class Server {
public static void main(String[] args) {try {//1.创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口ServerSocket serverSocket = new ServerSocket(8080);Socket socket = null;int count = 0;//记录客户端的数量System.out.println("***服务器即将启动,等待客户端的连接***");while (true) {socket = serverSocket.accept();//调用accept()方法开始监听,等待客户端的连接//创建一个新的线程ServerThread serverThread = new ServerThread(socket);serverThread.start();//启动线程count++;System.out.println("客户端的数量:" + count);InetAddress address = socket.getInetAddress();System.out.println("当前客户端的IP:" + address.getHostAddress());} } catch (Exception e) {e.printStackTrace();}
}
}

  

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;/*** * @ClassName: ServerThread* @Description:  服务器线程处理类* @author: xfzhong* @date: */
public class ServerThread extends Thread{Socket socket=null;// 和本线程相关的Socketpublic ServerThread(Socket socket) {this.socket=socket;}//线程执行的操作,响应客户端的请求
public void run() {InputStream is=null;InputStreamReader isr=null;BufferedReader br=null;OutputStream os=null;PrintWriter pw=null;try {//获取输入流,并读取客户端信息is = socket.getInputStream();isr = new InputStreamReader(is);br = new BufferedReader(isr);String info = null;while ((info = br.readLine()) != null) {System.out.println("我是服务器,客户端说:" + info);}socket.shutdownInput();//关闭输入流//获取输出流,响应客户端的请求os = socket.getOutputStream();pw = new PrintWriter(os);pw.write("欢迎您!");pw.flush();//调用flush()方法将缓冲输出} catch (Exception e) {e.printStackTrace();}finally{try {//关闭资源if (pw != null)pw.close();if (os != null)os.close();if (br != null)br.close();if (isr != null)isr.close();if (is != null)is.close();if (socket != null)socket.close();} catch (Exception e2) {e2.printStackTrace();}}}
}

  

转载于:https://www.cnblogs.com/ipetergo/p/6867647.html

Java的Socket通信----通过 Socket 实现 TCP 编程之多线程demo(2)相关推荐

  1. python进程socket通信_Python Socket TCP双端聊天功能实现过程详解

    SOCKET编程 socket(套接字):是一个网络通信的端点,能实现不同主机的进程通信, -通过IP+端口定位对方并发送消息的通信机制 分为UDP和TCP 客户端Client: 发起访问的一-方 服 ...

  2. java socket通信demo_Java Socket通信示例

    Socket分为ServerSocket和Socket两大类: 其中ServerSocket用于服务器端,可以通过accept方法监听请求,监听到请求后返回Socket: Socket用户具体完成数据 ...

  3. flash php socket通信_php socket通信机制实例说明

    php socket通信机制实例说明与代码----什么是socket 所谓socket一般也称作"套接字",用于描述ip地址和端口,是一个通讯链的句柄.使用程序一般经过" ...

  4. QT中使用C++ socket通信,socket通信原理三次握手和四次握手详解、客户端与服务端实例详解

    对TCP/IP.UDP.Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵.那么我想问: 1.         什么是TCP/IP.UDP? 2.         Soc ...

  5. QT中使用C++ socket通信(了解socket通信、socket的三次握手和四次挥手、socket函数说明、客户端与服务端的代码实例)

    一.TCP/IP协议四个抽象层: 二.socket位置 socket就在应用程序的传输层和应用层之间,传输层的底一层的服务提供给socket抽象层,socket抽象层再提供给应用层. 三.socket ...

  6. java与c++ socket通信_C++ socket 客户端与JAVA socket 服务端通信汗血宝马

    C++ socket 连接java 服务如果发送 packHeadLength+消息体 java 客户端代码 Socket socket = new Socket("127.0.0.1&qu ...

  7. Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤...

    TCP和UDP是两个传输层协议,广泛应用于网络中不同主机之间传输数据.对任何程序员来说,熟悉TCP和UDP的工作方式都是至关重要的.这就是为什么TCP和UDP是一个流行的Java编程面试问题. Jav ...

  8. Java基础23 网络编程 socket套接字流 TCP传输总结

    一.网络编程的概念 1.计算机网络:将不同地区的计算机,使用网络来进行连接 实现不同地区的数据的交互与共享(互联时代) 2. 网络编程的三要素:IP地址 端口号 协议 3. ip地址:是在网络连接中 ...

  9. android socket 简易聊天室 java服务器,Android Socket通信实现简单聊天室

    socket通信是基于底层TCP/IP协议实现的.这种服务端不需要任何的配置文件和tomcat就可以完成服务端的发布,使用纯java代码实现通信.socket是对TCP/IP的封装调用,本身并不是一种 ...

最新文章

  1. 独家 | 将人们困于贫穷之中的隐藏算法战争即将到来
  2. c#异步socket
  3. java类是如何加载的?不知道classLoader和双亲委派,不是一个合格的程序员
  4. Java黑皮书课后题第3章:3.10(游戏:加法测试)程序清单3-3随机产生一个减法问题。修改这个程序,随机产生一个计算两个小于100的整数的加法问题
  5. python操作csv文件第7行开始的数据_Python教程-Python读写CSV文件
  6. WebStorm 代码文字发虚模糊 - 解决篇
  7. 版本控制软件Visual Source safe使用小结 (配合上文)
  8. 微信小程序之 3d轮播(swiper来实现)
  9. 编译原理算符分析器实现 -* c语言代码,编译原理论文-词法分析器的设计与实现...
  10. openstack中region、az、host aggregate、cell 概念
  11. 使用rvm来管理ruby版本
  12. 游戏筑基开发之C语言回调函数使用实例及其.h库封装实例
  13. ps mysql进程_ps(Process Status)进程状态:列出当前正在运行的进程
  14. 如何引入阿里矢量图标库彩色图标
  15. 小技巧|H5禁止手机虚拟键盘弹出
  16. WPS公式编辑器的MTExtra字体无效,将无法显示和打印某些字符
  17. word文档生成系列:doc和docx插入多图
  18. MATLAB 动态曲线 视频
  19. 除法器的实现(恢复余数、不恢复余数、级数展开、Newton-Raphson)
  20. 实战 Java 第12天:开发商品点赞接口

热门文章

  1. 图像热点(图像地图)
  2. Java中对比两个对象中属性值[反射、注解]
  3. json 是个什么东西?
  4. 邓文迪撑杆跳,甩开老公要独立?_富杂志_新浪博客
  5. DSP集成开发工具CCS的Git工具使用说明(二)
  6. Ubuntu中的root权限
  7. matplotlib subplot画子图
  8. 自编码之残差和磁力线网络结构
  9. 自然语言处理 的 一些环境和包
  10. 中国交通标志识别,德国交通标志识别