毕向东tcp学习笔记1

项目功能:

实现一次发送和接收,服务器接收客户端发送的内容并打印出来

用最通俗的语言讲解下,上图中大椭圆是服务器,A、C是客户端,当客户端和服务器通过socket建立连接后

1.两者之间形成一个通道,此时将要发送的内容放入流中:out.wirte(“字节数组")

2.服务器端使用客户端的对象得到socket s,s包括客户端的IP,端口,内容等属性

3.in来获取s中的内容,也就是客户端的out和服务器端的in一一对应

4.最后服务器将(根据客户端生成的)s关闭。只有服务器的套接字ss可选择性关闭

代码:

 1 /*
 2 * 客户端:
 3 *  通过查阅socket对象,发现TCP是面向连接的,所有对象建立时,就连接指定主机
 4 *  服务端存在并连接成功,形成通路后,再该通道进行数据传输
 5
 6 步骤:
 7 1.创建socket服务,指定目的主机和端口
 8 */
 9 import java.io.*;
10 import java.net.*;
11
12 class tcpClient
13 {
14     public static void main(String[] args) throws IOException{
15      //1.创建socket服务,指定目的主机和端口
16      Socket s =new Socket("192.168.1.103",10000);
17
18      //为了发送数据,应获取socket流的输出流
19      OutputStream out = s.getOutputStream();
20
21      //将内容放到流中
22      out.write("tcp 我是客户端".getBytes());
23
24      s.close();
25     }
26 }
27
28 /*
29 需求:定义端点接收数据并打印在控制台
30
31 服务端:
32 1.创建服务端serversocket对象并指定端口
33   当不指定时,使用connect方法指定
34 2. 获取连接过来的客户端对象
35    通过serversocket的accept方法等待,阻塞式,无连接一直等待
36 3.客户端如果发过来数据,服务端使用对应连接的读取流获取发过来数据
37   打印在服务台
38 4,关闭服务端(可选)
39 */
40
41  class tcpServer
42 {
43     public static void main(String[] args) throws IOException{
44
45      //建立服务端socket服务,并监听端口
46      ServerSocket ss =new ServerSocket(10000);
47
48      //通过accept方法获取链接过来的客户端对象(s中有内容,端口,IP属性)
49      Socket s = ss.accept();
50      //IP:
51      String ip =s.getInetAddress().getHostAddress();
52      System.out.println(ip+"...连接成功" );
53      //内容:获取客户端发送过来的数据,那么要使用客户端对象s
54      InputStream in = s.getInputStream();
55
56      byte[] buf =new byte[1024];
57      int len=in.read(buf);
58      String content = new String(buf,0,len);
59      System.out.println("内容:"+content );
60
61      s.close();//关闭客户端,服务器可以控制客户
62      ss.close();//关闭服务端,可选操作
63     }
64 }
时间: 2024-10-06 04:02:49

毕向东tcp学习笔记1的相关文章

EasyARM i.mx287学习笔记——通过modbus tcp控制GPIO

0 前言 本文使用freemodbus协议栈,在EasyARM i.mx287上实现了modbus tcp从机. 在该从机中定义了线圈寄存器.当中线圈寄存器地址较低的4位和EasyARM的P2.4至P2.5关联,通过modbus指令可控制GPIO的输出.本文改动自freemodbus 演示样例LINUXTCP.经过简单的改动也可用于其它Linux开发板. [相关博文] [EasyARM i.mx28学习笔记--文件IO方式操作GPIO] [EasyARM i.mx28学习笔记--安装和使用tft

EasyARM i.mx28学习笔记——通过modbus tcp控制GPIO

0 前言 本文使用freemodbus协议栈,在EasyARM i.mx287上实现了modbus tcp从机.在该从机中定义了线圈寄存器,其中线圈寄存器地址较低的4位和EasyARM的P2.4至P2.5关联,通过modbus指令可控制GPIO的输出.本文修改自freemodbus 示例LINUXTCP,经过简单的修改也可用于其他Linux开发板. [相关博文] [EasyARM i.mx28学习笔记--文件IO方式操作GPIO] [EasyARM i.mx28学习笔记--安装和使用tftp]

黑马程序员_毕向东_Java基础视频教程_Java基础学习知识点总结

黑马程序员_毕向东_Java基础视频教程 Java基础学习知识点总结 2016年01月06日  day01 一.基础知识:软件开发 1.什么是软件?软件:一系列按照特定顺序组织的计算机数据和指令的集合. 2.常见的软件:系统软件:如:DOS,Windows,Linux等.应用软件:如:扫雷,迅雷,QQ等. 3.什么是开发?制作软件. 二.基础知识:人机交互方式 4.软件的出现实现了人与计算机之间的更好的交互. 5.交互方式:图形化界面:这种方式简单直观,使用者易于接受,容易上手操作.命令行方式:

学习笔记之TCP/IP协议的传输方式

一.通过网络发送数据,大致可以分为面向有连接与面向无连接两种类型: 1.面向无连接型包括以太网. IP.UDP等协议. 2. 面向有连接 型包括ATM.帧中继.TCP等 协议. 通过一张图了解一下: 面向有连接型 面向有连接型中,在发送数据之前,需要在收发主机之间连接一条通信线路 面向有连接型就好比人们平常打电话,输入完对方电话号码拨出之后,只有 对端拿起电话才能真正通话,通话结束后将电话机扣上就如同切断电源.因此在 面向有连接的方式下,必须在通信传输前后,专门进行建立和断开连接的处理.如果与对

【转】TCP/IP详解学习笔记(二)

TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节 1.静态IP选路 1.1.一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由.这里就不重复了.首先来看看一个简单的系统路由表. Destination     Gateway         Genmask         Flags Metric Ref    Use Iface192.168.11.0    *               255.

TCP/IP详解学习笔记

TCP/IP详解学习笔记(1)-基本概念 TCP/IP详解学习笔记(2)-数据链路层 TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议 TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节 TCP/IP详解学习笔记(6)-UDP协议 TCP/IP详解学习笔记(7)-广播和多播,IGMP协议 TCP/IP详解学习笔记(8)-DNS域名系统 TCP/IP详解学习笔记(9)-TCP协议概述 TCP

TCP协议和socket API 学习笔记

本文转载至 http://blog.chinaunix.net/uid-16979052-id-3350958.html 分类: 原文地址:TCP协议和socket API 学习笔记 作者:gilbertjuly  • TCP包头 ACK为1时,确认序号有效,表示期望收到的下一个序号,是上次成功收到的字节序加1. SYN, FIN都占用一个序号. • TCP连接的建立 client通过connect()来建立TCP连接,connect()会发送SYN报文: server通过bind().list

Linux程序设计学习笔记----Socket网络编程基础之TCP/IP协议簇

转载请注明出处: ,谢谢! 内容提要 本节主要学习网络通信基础,主要涉及的内容是: TCP/IP协议簇基础:两个模型 IPv4协议基础:IP地址分类与表示,子网掩码等 IP地址转换:点分十进制\二进制 TCP/IP协议簇基础 OSI模型 我们知道计算机网络之中,有各种各样的设备,那么如何实现这些设备的通信呢? 显然是通过标准的通讯协议,但是,整个网络连接的过程相当复杂,包括硬件.软件数据封包与应用程序的互相链接等等,如果想要写一支将联网全部功能都串连在一块的程序,那么当某个小环节出现问题时,整只

UNP学习笔记(第五章 TCP客户/服务程序实例)

我们将在本章使用前一章中介绍的基本函数编写一个完整的TCP客户/服务器程序实例 这个简单得例子是执行如下步骤的一个回射服务器: TCP回射服务器程序 1 #include "unp.h" 2 3 int 4 main(int argc, char **argv) 5 { 6 int listenfd, connfd; 7 pid_t childpid; 8 socklen_t clilen; 9 struct sockaddr_in cliaddr, servaddr; 10 11 l