socket 简单了解
//客户端
public class Client { public static void main(String[] args) throws Exception {
// 要连接的ip和端口,并监听ip和端口 两个端口需一样
Socket sk = new Socket("192.168.60.1", 49154);
// 建立连接后获得输入流
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(sk.getOutputStream()));
String line;
// 循环给line添加值
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
bw.flush();
InputStream is = sk.getInputStream();
byte[] by = new byte[1024];
int num = is.read(by);
// by一口气传输多少字节 0 num 等于有多少字节
String h = new String(by, 0, num);
}
br.close();
bw.close();
sk.close(); }
//服务端
public class Server {
public static void main(String[] args) throws Exception {
// 监听指定的端口 端口号最好从49152到65535之间
ServerSocket sk = new ServerSocket(49154);
// sk将一直等待连接的到来
Socket s = sk.accept();
// 建立好连接后,从Socket中获取输入流,并建立缓冲区进行读取
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedReader bw = new BufferedReader(new InputStreamReader(System.in));
// line 等于客户端添加的内容 如果不添加会一直在 Socket s = sk.accept()等待到来
String line;
while ((line = br.readLine()) != null) {
System.out.println("服务端 \t" + line);
}
// 释放资源
s.close();
sk.close(); /*
* BufferedReader的readLine()方法是阻塞式的, 如果到达流末尾, 就返回null,
* 但如果client的socket末经关闭就销毁, 则会产生IO异常.
* 正常的方法就是使用socket.close()关闭不需要的socket.
*/ }
socket 简单了解的更多相关文章
- .NET 跨平台RPC框架DotNettyRPC Web后台快速开发框架(.NET Core) EasyWcf------无需配置,无需引用,动态绑定,轻松使用 C# .NET 0配置使用Wcf(半成品) C# .NET Socket 简单实用框架 C# .NET 0命令行安装Windows服务程序
.NET 跨平台RPC框架DotNettyRPC DotNettyRPC 1.简介 DotNettyRPC是一个基于DotNetty的跨平台RPC框架,支持.NET45以及.NET Standar ...
- Python网络编程02 /基于TCP、UDP协议的socket简单的通信、字符串转bytes类型
Python网络编程02 /基于TCP.UDP协议的socket简单的通信.字符串转bytes类型 目录 Python网络编程02 /基于TCP.UDP协议的socket简单的通信.字符串转bytes ...
- C# .NET Socket 简单实用框架,socket组件封装
参考资料 https://www.cnblogs.com/coldairarrow/p/7501645.html 根据.NET Socket 简单实用框架进行了改造,这个代码对socket通信封装还是 ...
- C# Socket简单例子(服务器与客户端通信)
这个例子只是简单实现了如何使用 Socket 类实现面向连接的通信. 注意:此例子的目的只是为了说明用套接字写程序的大概思路,而不是实际项目中的使用程序.在这个例子中,实际上还有很多问题没有解决,如消 ...
- Flash Socket简单调试工具
写了一个简单的Flash Socket调试工具,可用来简单调试本地或者外部socket服务器,使用的时候注意Flash socket的安全策略问题,有问题请联系sky-wang@qq.com.
- C#的Socket简单实现消息发送
Socket一般用于网络之间的通信,在这里,实现的是服务端与客户端的简单消息通信.首先是客户端的搭建,一般步骤是先建立Socket绑定本地的IP和端口,并对远端连接进行连接进行监听,这里的监听一般开启 ...
- Java Socket 简单梳理
Sockets let you send raw streams of bytes back and forth between two computers, giving you fairly lo ...
- Python Socket 简单聊天室2
上篇文章写了一个简单的单线程的一问一答的简单聊天室.这次我们使用SocketServer模块搭建一个多线程异步的聊天室. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...
- Python Socket 简单聊天室1
这是第一版,最简单的,仅仅实现了通信,你收我发,我收你发而已.下篇将介绍,基于异步多线程的聊天室: 客户端: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...
- C# .NET Socket 简单实用框架
背景: 首先向各位前辈,大哥哥小姐姐问一声好~ 这是我第一次写博客,目前为一个即将步入大四的学生,上学期在一家公司实习了半年,后期发现没有动力,而且由于薪水问题(废话嘛),于是跳槽到这家新的公司. 说 ...
随机推荐
- vim 插件 -- taglist
taglist 插件是基于ctags生成的tags文件一个工具.主要是用来生成当前文件的结构.如:函数名.变量名结构.具体如下图: 下载 https://www.vim.org/scripts/scr ...
- 安装cmake 和 opencv 4.0.0
1.安装cmake3.5.1或更新的版本 安装gcc-c++:sudo apt-get install build-essential (或者直接执行这两条命令sudo apt-get install ...
- JAVA实现简单的四则运算
GitHub 项目地址 https://github.com/745421831/-/tree/master PSP PSP2.1 Personal Software Process Stages 预 ...
- maven配置及使用
配置maven工程.从官网下载maven工具,然后解压到磁盘某个目录下即可. 计算机->属性->高级系统设置->环境变量. 新建如下变量: 变量名:MAVEN_HOME 变量值:C: ...
- Oracle查询语句导致CPU使用率过高问题处理
解决此问题的关键在于如何找到造成CPU使用率过高的SQL语句.步骤如下: 1.使用Process Explorer工具查看到Oracle进程,双击Oracle进程,在弹出的属性窗口的Threads选项 ...
- java第六次课后作业
class Check{ public boolean validate(String name, String password){ if(name.equals("shenhaochen ...
- java第二次笔记
- TreeSet VS HashSet VS LinkedHashSet; TreeMap VS HashMap VS LinkedHashMap
From online resources Set HashSet is much faster than TreeSet (constant-time versus log-time for mos ...
- Ubuntu 18.04安装VNC远程登录
reference: https://blog.csdn.net/bluewhalerobot/article/details/73649353 https://community.bwbot.org ...
- Java——值传递与引用传递
1.基本类型和引用类型在内存中的保存 (1)基本类型的变量保存原始值,即它代表的值就是数值本身: 基本类型在声明变量时就为它分配了空间: 基本类型在参数传递过程中属于值传递,也就是复制一份数据 ...