Java TCP的基本操作参考前一篇:Java 网络编程 – 基于TCP实现文件上传 实现多用户操作之前先实现以下单用户操作,假设目前有一个用户: 账号:zs 密码:123 服务端: public class LoginServer { public static void main(String[] args) throws IOException { System.out.println("=========server========"); // 1.使用serverSocket…
Java TCP 操作基本流程 一.创建服务器 1.指定端口, 使用serverSocket创建服务器 2.阻塞式连接 accept 3.操作:输入流 输出流 4.释放资源 二.创建客户端 1.使用Socket 创建客户端 + 服务器的ip和端口 2.操作:输入流 输出流 3.释放资源 实现文件上传: 客户端上传: public class FileClient { public static void main(String[] args) throws IOException { Syste…
分析: 聊天室需要多个客户端和一个服务端. 服务端负责转发消息. 客户端可以发送消息.接收消息. 消息分类: 群聊消息:发送除自己外所有人 私聊消息:只发送@的人 系统消息:根据情况分只发送个人和其他人 技术方面: 客户端和服务端收发消息,需要使用IO流,封装一个IOUtils工具类用来释放资源. 客户端需要同时收发消息,需要启动发送和接收两个消息,互不干扰 服务端需要接收每个客户端消息和对多个客户端发送消息,每连接上一个客户端需要启动一个线程,让后面进来的客户端不需要等待前面的客户端退出后才能…
下面将基于TCP协议用JAVA写一个非常简单的聊天室程序, 聊天室具有以下功能, 在服务器端,可以接受客户端注册(用户名),可以显示注册成功的账户 在客户端,可以注册一个账号,并用这个账号发送信息 发送信息有两种模式,一种是群聊,所有在线用户都可以看到消息,另一种是私聊,只针对指定账户发送消息 下面是主要的实现思路, 首先是服务器端, 需要使用多线程实现. 主线程用来循环监听客户端的连接请求, 一旦接收到一个请求,就为这个客户端创建一个专用通信线程. 服务器端依靠一个经过重写的map保存在线的客…
基于TCP协议的网络编程 TCP/IP协议是一种可靠的网络协议,它的通信的两端各自建立一个Socket,从而在通信的两端之间形成网络虚拟链路. Java使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信. 1.ServerSocket java中能接收其他通信实体连接请求的类是ServerSocket,他会监听来自客户端Socket连接,如果没有连接,它将一直处于等待状态. ServerSocket常用方法: Socket accept():如果接收到客户端So…
Socket编程 目前较为流行的网络编程模型是客户机/服务器通信模式 客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该请求.如图所示,通常,一个服务器进程会同时为多个客户端进程服务,图中服务器进程B1同时为客户进程A1.A2和B2提供服务. Socket概述 ①   所谓Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过“套接字”向网络发出请求或者应答网络请求. ②   Socket是连接运行在网络上的两个程序间的双向通信的端点. ③  …
网络编程 网络编程主要用于解决计算机与计算机(手机.平板..)之间的数据传输问题. 网络编程: 不需要基于html页面就可以达到数据之间的传输. 比如: feiQ , QQ , 微信....网页编程: 就是要基于html页面的基础上进行数据的交互的. 比如: 珍爱网. oa(办公自动化). 高考的报告系统... 计算机网络: 分布在不同地域 的计算机通过外部设备链接起来达到了消息互通.资源共享的效果就称作为一个计算机网络.网络通讯的三要素:    1. IP    2. 端口号.    3. 协…
import   socket 1.通信套接字(1人1句)服务端和1个客户端 2.通信循环(1人多句)服务端和1个客户端 3.通信循环(多人(串行)多句)多个客户端(服务端服务死:1个客户端--->下一个客户端...) 基于上面的基础:实现远程执行命令 发现问题:send(cmd) recv() send(命令结果) recv(1024)命令结果没收完 粘包问题: 主要还是因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据所造成的. 解决   自定义报头固定长度 import str…
AIO实现非阻塞通信 java7 NIO2 提供了异步Channel支持,这种异步Channel可以提供更高效的IO,这种基于异步Channel的IO被称为异步IO(Asynchronous IO) IO操作分为两步:1.程序发出IO请求  2.完成实际的IO操作 阻塞和非阻塞IO是根据第一步划分的: 发出IO请求如果阻塞线程则是阻塞IO,如果不阻塞线程,则是非阻塞IO. 同步IO和异步IO是根据第二步划分: 如果实际的IO操作是由操作系统完成,再将结果返回给应用程序,这就是异步IO. 如果实际…
1.Java中客户端和服务器端通信的简单实例 Java中能接收其他通信实体连接请求的类是ServerSocket,ServerSocket对象用于监听来自客户端的Socket连接,如果没有连接,它将一直处于等待状态 ServerSocket包含一个监听来自客户端连接请求的方法. ServerSocket accept():  接收到一个客户端Socket的连接请求,该方法将返回一个与客户端Socket对应的Socket.如果没有客户端连接上来,该方法将一直处于等待状态,线程也被阻 塞. 客户端:…