网络编程

网络编程-TCP连接-length

|▌冷眼眸甩不掉的悲伤 提交于 2020-04-04 15:19:55
在使用readLine方式时,常常会遇到因为没有结束标记,而导致阻塞现象。 如果不想使用结束标记,这里可以使用一个固定长度的byte[],来获取流。 server package com.net.tcp.length; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; public class MyServerL { public static void main(String[] args) { ServerSocket ss; try { ss = new ServerSocket(30000); Socket s= ss.accept(); byte[] rin = new byte[8]; s.getInputStream().read(rin); System.out.println(new String(rin,0,8)); PrintStream ps = new PrintStream(s.getOutputStream()); ps.println("收到消息aa");

网络编程——TCP连接

醉酒当歌 提交于 2020-04-04 15:12:13
TCP在双方传输数据前,发送方先请求建立连接,接收方同意建立连接后才能传输数据。(打电话:先拨号,等对方同意接听后,才能交流)。。。高可靠性 UDP不需要建立连接(发短信)。不可靠,可能出现数据丢失等,但效率高,实时性高。 ———————————————————————————————————————————————————————————————————————————— 服务器端: import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; public class ServerSocketTest { public static void main(String[] args) throws IOException { // 新建一个服务器端的套接字 Server端监听10000端口 ServerSocket serverSocket = new ServerSocket(10000); // 建立连接,此时进入阻塞状态 Socket socket = serverSocket.accept(); System.out.println("Connected: " + socket

Java网络编程--简单聊天程序

给你一囗甜甜゛ 提交于 2020-04-02 06:24:09
背景   毕业设计前的练手,学校小比赛中的一个题目。 开发环境   Java(eclipse)+Mysql 简介   使用Java+Mysql开发以个简单的聊天工具,在本次项目(V1.0)中实现了:     1. 用户登录(客户端至服务器)     2. 登录服务器的用户可以公共聊天     3. 用户间可以实现私密聊天     4. 同一账号只能一地登录 下一次版本更新   文件传输+数据传输加密。(2.0) 界面   登录界面: 聊天主窗口: 私聊窗口: 来源: https://www.cnblogs.com/A--Q/p/6257740.html

网络编程定义

非 Y 不嫁゛ 提交于 2020-03-30 13:03:53
网络编程 1.网络通讯协议 理论知识点 学习网络编程的目的? 什么是互联网 网: 由多个节点相互连接组成 渔网 蜘蛛网 计算互联网: 由多台计算机通过某种介质相互连接而组成 互联网之所以存在就是为了能让信息共享 网络编程 :指的是编写基于网络的应用程序 学习网络编程的目的 开发出一款可以利用网络来传输数据的应用程序 CS结构 建立网络至少需要两台计算机,然后使用网络来传输数据 1.网络必须联通 2.在需要访问数据一方 必须安装用于访问数据的应用程序 该应用程序称之为客户端应用程序(client) 在需要提供数据的一方 必须安装用于共享数据的应用程序 该应用程序称之为服务端应用程序(server) 简写为C/S 例如: qq 就是一个客户端 服务器在腾讯公司 腾讯视频 B/S Browser浏览器/Server 该结构下 通过传输都是HTML文本数据 学习网络编程 最终的目的就是要编写出一个基于C/S结构的应用程序 要通讯必须具备的两个条件 1.物理传播介质 (双绞线 光纤 同轴线 无线电波) 2.通讯协议 (重点) 通讯协议 是由发送方和接收方共同商定一套规范 为什么需要协议 其目的是是为了双方能正确解析数据 例如 国内通讯:双方都是用普通话 国际通信:使用英文 IBM DELL HP 早些年 每个公司都有自己一套通讯协议 这导致了 不同品牌的电脑连不了网 于是

Java网络编程三--基于TCP协议的网络编程

让人想犯罪 __ 提交于 2020-03-30 12:07:48
ServerSocket对象用于监听来自客户端的Socket连接,如果没有连接,它将一直处于等待状体   Socket accept():如果接收到客户端的连接请求,该方法返回一个与客户端对应Socket对象,否则该方法将一直处于等待状态,线程也被阻塞   提供了三个构造器:     ServerSocket(int port):监听port端口(端口号指定大于1024)     ServerSocket(int port , int backblog):????????????backlog有啥用还没查???????????     ServerSocket(int port , int backblog, InetAddress localAddr):将serversocket绑定到指定IP的地址(当机器存在多个IP地址时) Socket   Socket(InetAddress/String remoteAddress, int port, InetAddress localAddr, int localPort):创建连接到远程主机,端口的连接,并制定本机的IP地址和端口(适用于本机有多个IP地址)   Socket(InetAddress/String remoteAddress, int port):创建连接到远程主机,端口好的Socket,使用本机默认的ip地址

简单网络编程如何用python来实现

孤者浪人 提交于 2020-03-27 21:00:25
对于网络编程,通信模式是后台必备技能,先用最基础代码实现,理解一些 API 的含义,在深入学习。 总是有读者问过我关于 Python 后台开发相关,如果想走 Python 后台方向,对于 Python 网络编程的学习,是很有必要的,这个是面试必问的。 对于 Python 方向,我之前分析过:爬虫、数据分析、后台、算法等岗位,在这里在简单提一下。 爬虫:大厂几乎没有爬虫岗位,这个天花板比较低,而且发展前途受限,入门学 Python 可以,不适合职业方向。 后台:现在三大后台,Java、C++、Go,基本上用 Python 做后台的极少,不建议走这个方向。 数据分析 + 算法:这个是 Python 最擅长的领域,以及前景最好的方向,在需求岗位以及招聘上,相当的多,选择这个方向没有任何问题。 Python网络编程 (1)、服务器端代码: (2)、客户端代码: 如果觉得还不够详细或者还有不懂到地方,请私信小编,不定期分享干货,包括我自己整理的一份2019最新的Python入门到实战教程。 来源: https://www.cnblogs.com/python0921/p/12583976.html

Java 网络编程

烂漫一生 提交于 2020-03-27 10:18:56
一:OSI模型 Open System Interconnection 开放系统互联 二:TCP/IP分层模型 TCP代表传输控制协议:Transfer Control Protocol 允许两个程序之前进行可靠的通讯 UDP代表用户报文协议:User Datagram Protocol 允许两个程序之前进行不可靠的通讯 三 客户端 和 服务器 四:套接字 定义:Socket(套接字)是一种抽象层,应用程序通过它来发送和接收数据 五:InetAddress类代表IP地址,没有构造器但是有多个方法,查询API文档。 六:TCP套接字编程 服务器: –1.利用ServerSocket建立对服务端某个端口的监听。 如:ServerSocket server = new ServerSocket(8000); –2.利用accept方法创建服务端Socket 如:Socket socket = server.accept() –3.利用已建立的socket创建输入输出流 如:BufferedReader br = new BufferedReader( new InputStreamReader(socket.getInputStream())); –4.关闭输入输出流,关闭socket,关闭server 如: br.close(); pw.close(); socket.close();

关于网络编程的总结

痞子三分冷 提交于 2020-03-27 06:41:07
网络编程的知识结构图 socket编程   网络编程,主要是指基于TCP的网络通信编程,使用Socket类实现,也称为socket编程   socket编程模型中有服务器端和客户端,服务器端使用ServerSocket创建,一般有固定的IP地址和端口号,方便向外界提供服务。客户端可以有多个,并且使用Socket主动连接服务器。连接后,服务器端也创建一个Socket对象表示这次连接 编程步骤 : 服务器端: 1 创建服务器对象ServerSocket 2 等待客户端的连接请求,收到请求后即返回表示这次连接的Socket对象 3 开启新的线程专门处理这个连接 4 获得连接的输入输出流,并按照一定的规则进行数据交换 5 关闭连接(关闭连接时会自动关闭IO流) 客户端: 1 创建Socket对象,即向服务器申请连接 2 获得连接的输入输出流,并按照一定的规则进行数据交换 3 最后关闭连接(关闭连接时会自动关闭IO流) 平时编程时一般都是基于应用层协议,比如HTTP,直接进行socket编程的并不多。 /* * 把从客户端读取到的一行数据的字符进行翻转,然后发送给客户端 * 当读取到over时,连接断开 */ public class Server2 { public static void main(String[] args) { try { ServerSocket server =

Java网络编程

拟墨画扇 提交于 2020-03-25 05:50:39
网络编程三要素: A:IP地址 B:端口 C:协议 举例: 我想和林青霞说话了。肿么办? A:我要找到林青霞。 B:对她说话,要对耳朵说。 C:我说什么呢?"I Love You" 但是,她没学过英语,听不懂。 我没必要说英语,说汉语就可以了:我爱你 IP地址: 网络中计算机的唯一标识。 计算机只能识别二进制的数据,所以我们的IP地址应该是一个二进制的数据。 但是呢,我们配置的IP地址确不是二进制的,为什么呢? IP:192.168.1.100 换算:11000000 10101000 00000001 01100100 假如真是:11000000 10101000 00000001 01100100的话。 我们如果每次再上课的时候要配置该IP地址,记忆起来就比较的麻烦。 所以,为了方便表示IP地址,我们就把IP地址的每一个字节上的数据换算成十进制,然后用.分开来表示: "点分十进制" IP地址的组成:网络号段+主机号段 A类:第一号段为网络号段+后三段的主机号段 一个网络号:256*256*256 = 16777216 B类:前二号段为网络号段+后二段的主机号段 一个网络号:256*256 = 65536 C类:前三号段为网络号段+后一段的主机号段 一个网络号:256 IP地址的分类: A类 1.0.0.1---127.255.255.254 (1)10.X.X.X是私有地址

网络编程(转发自“软件思维”)

自作多情 提交于 2020-03-25 04:58:17
要进行网络编程,首先要搞清楚目的是什么。 网络编程说简单点就是在网络上的计算机进行数据的交互。 既然要进行数据交互,那就需要有一个发送方和一个接受方。 按网络上的说法,就是一个攻一个受· 当然,现阶段网上的电脑一般来说都是既接受数据,也能发送数据的,所以说这些电脑都是“插座型”的,进可攻,退可受!!! 好吧,还是使用专业点的名字吧: 客户端/服务器 。 那么具体到两台电脑,它们是如何来交互数据的呢?请看下图: 从步骤来分析: 一、服务器端程序 1.1创建一个服务器套接字( ServerSocket ),并绑定到指定端口。 1.2侦听来自客户端的请求,如果接受到连接则返回套接字对象( socket )。 1.3获得输入/输出流,也就是进行数据的接收或发送。 1.4关闭套接字(socket)。 二、客户端程序 2.1创建一个套接字,向服务器指定商品发送请求。 2.2与服务器正确连接后开始数据的接收或发送。 2.3关闭套接字。 步骤分析完了,接下来就是实施了。 服务器端代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 public class MyServer { private static final int SERVER_PORT =