毕向东tcp学习笔记1
项目功能:
实现一次发送和接收,服务器接收客户端发送的内容并打印出来

用最通俗的语言讲解下,上图中大椭圆是服务器,A、C是客户端,当客户端和服务器通过socket建立连接后
1.两者之间形成一个通道,此时将要发送的内容放入流中:out.wirte(“字节数组")
2.服务器端使用客户端的对象得到socket s,s包括客户端的IP,端口,内容等属性
3.in来获取s中的内容,也就是客户端的out和服务器端的in一一对应
4.最后服务器将(根据客户端生成的)s关闭。只有服务器的套接字ss可选择性关闭
代码:
/*
* 客户端:
* 通过查阅socket对象,发现TCP是面向连接的,所有对象建立时,就连接指定主机
* 服务端存在并连接成功,形成通路后,再该通道进行数据传输 步骤:
1.创建socket服务,指定目的主机和端口
*/
import java.io.*;
import java.net.*; class tcpClient
{
public static void main(String[] args) throws IOException{
//1.创建socket服务,指定目的主机和端口
Socket s =new Socket("192.168.1.103",10000); //为了发送数据,应获取socket流的输出流
OutputStream out = s.getOutputStream(); //将内容放到流中
out.write("tcp 我是客户端".getBytes()); s.close();
}
} /*
需求:定义端点接收数据并打印在控制台 服务端:
1.创建服务端serversocket对象并指定端口
当不指定时,使用connect方法指定
2. 获取连接过来的客户端对象
通过serversocket的accept方法等待,阻塞式,无连接一直等待
3.客户端如果发过来数据,服务端使用对应连接的读取流获取发过来数据
打印在服务台
4,关闭服务端(可选)
*/ class tcpServer
{
public static void main(String[] args) throws IOException{ //建立服务端socket服务,并监听端口
ServerSocket ss =new ServerSocket(10000); //通过accept方法获取链接过来的客户端对象(s中有内容,端口,IP属性)
Socket s = ss.accept();
//IP:
String ip =s.getInetAddress().getHostAddress();
System.out.println(ip+"...连接成功" );
//内容:获取客户端发送过来的数据,那么要使用客户端对象s
InputStream in = s.getInputStream(); byte[] buf =new byte[1024];
int len=in.read(buf);
String content = new String(buf,0,len);
System.out.println("内容:"+content ); s.close();//关闭客户端,服务器可以控制客户
ss.close();//关闭服务端,可选操作
}
}
毕向东tcp学习笔记1的更多相关文章
- 毕向东udp学习笔记1
参看了毕向东老师的视频教程,准备直接用EditPlus记事本来直接敲Java代码,好好学习一下udp部分,GUI部分,线程部分,加油 项目功能: 实现udp简单的发送接收功能. 当使用EditPlus ...
- 毕向东udp学习笔记3多线程聊天
项目功能: 实现了多线程下的发送接收,比较好 希望可以加入GUI,类似聊天软件一样,有一个消息输入框,捕获输入消息,作为发送线程 有一个显示消息框,接收消息并显示,作为接收线程 不知道的是,当在线程中 ...
- 毕向东udp学习笔记2
项目功能: 发送端读取控制台输入,然后udp发送 接收端一直接收,直到输入为886 相对于笔记1,修改了发送端代码,实现发送控制台的内容,接收端循环接收,当输入886时,停止发送 发送端: impo ...
- freemodbus modbus TCP 学习笔记
1.前言 使用modbus有些时间了,期间使用过modbus RTU也使用过modbus TCP,通过博文和大家分享一些MODBUS TCP的东西.在嵌入式中实现TCP就需要借助一个以太网协议 ...
- TCP学习笔记
TCP/IP 协议分层模型 TCP/IP 协议族按层次分别分为以下 4 层:应用层.传输层.网络层和数据链路层.层次化之后,每个层级只需要考虑自己的任务就可以了,不再需要弄清其他层级的功能了. TCP ...
- EasyARM i.mx287学习笔记——通过modbus tcp控制GPIO
0 前言 本文使用freemodbus协议栈,在EasyARM i.mx287上实现了modbus tcp从机. 在该从机中定义了线圈寄存器.当中线圈寄存器地址较低的4位和EasyARM的P2 ...
- uIP学习笔记
uIP学习笔记 从零开始使用uIP freemodbus modbus TCP 学习笔记
- TCP/IP详解学习笔记
TCP/IP详解学习笔记(1)-基本概念 TCP/IP详解学习笔记(2)-数据链路层 TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议 TCP/IP详解学习笔记(4)-ICMP协议, ...
- 黑马程序员----java基础笔记中(毕向东)
<p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...
随机推荐
- python继承的实例
class SchoolMember(object):#定义学校 member=0#默认成员为0个 amount=0#默认学费为0元 def __init__(self,name,age,sex):# ...
- IdTCP的C++Builder2010示例(转)
源:IdTCP的C++Builder2010示例 IdTCP的C++Builder2010示例 这个是服务端的: void __fastcall TTCPDataServer::TCPServerEx ...
- Codeforces 242E:XOR on Segment(位上的线段树)
http://codeforces.com/problemset/problem/242/E 题意:给出初始n个数,还有m个操作,操作一种是区间求和,一种是区间xor x. 思路:昨天比赛出的一道类似 ...
- ubuntu12.04+fuerte 下跑通lsd-slam——数据集
lsd-slam(下载链接:https://github.com/tum-vision/lsd_slam)提供了两种方法,一种是用数据集(下载地址http://vision.in.tum.de/lsd ...
- Linux内核配置浅析
1.Linux Kernel Kconfig系统的基本结构 Linux内核的配置系统由三个部分组成,分别是: 1>.Makefile:分布在 Linux 内核源代码根目录及各层目录中,定义 Li ...
- LRU Cache 题解
题意 Design and implement a data structure for Least Recently Used (LRU) cache. It should support the ...
- ios数据存储——数据库:SQlite3以及第三方库FMDB
[reference]http://blog.csdn.net/mad1989/article/details/9322307 原生数据库:SQlite3 一.必备条件 在ios项目中使用sqlite ...
- SQL Select结果增加自增自段(网转)
http://www.cnblogs.com/haver/archive/2011/07/14/2106349.html/* 方法一*/ SELECT 序号= (SELECT COUNT(客户编号) ...
- linux环境下Vim的配置
原文链接:http://blog.chinaunix.net/uid-26826958-id-3272375.html (本文转自此链接中的部分内容,但做了适当修改) 安装vim命令:sudo ap ...
- js原生写的微博留言板有angularjs效果
1.HTML: <!DOCTYPE html><html><head lang="en"> <meta charset=" ...