socket通信

MySQL—04—MySQL的其他对象

不问归期 提交于 2019-11-30 07:14:57
一、 MySQL 中的其他对象 1. 索引 MySQL 索引的建立对于 MySQL 的高效运行是很重要的,索引可以大大提高 MySQL 的检索速度。 1.1MySQL 中的索引类型 • 普通索引 • 唯一索引 • 主键索引 • 组合索引 • 全文索引 1.2 普通索引 是最基本的索引,它没有任何限制。 在创建索引时,可以指定索引长度。length 为可选参数,表示索引的长度,只有字符串 类型的字段才能指定索引长度,如果是 BLOB 和 TEXT 类型,必须指定 length。 创建索引时需要注意: 如果指定单列索引长度,length 必须小于这个字段所允许的最大字符个数。 查询索引:SHOW INDEX FROM table_name 1.2.1 直接创建索引 CREATE INDEX index_name ON table(column(length)) 示例 为 emp3 表中的 name 创建一个索引,索引名为 emp3_name_index create index emp3_name_index ON emp3(name) 1.2.2 修改表添加索引 ALTER TABLE table_name ADD INDEX index_name (column(length)) 示例 修改 emp3 表,为 addrees 列添加索引,索引名为 emp3_address

Socket通信(1):搭建开发环境

我怕爱的太早我们不能终老 提交于 2019-11-29 15:05:11
一. 准备工具 1. mac环境下的VMware Fusion, 下载地址: https://www.newasp.net/soft/462096.html 2. ubuntu 14.04 LTS, 不一定是14.04,但最好是LTS版本。 https://www.cnblogs.com/yongdaimi/p/11509640.html 3. qtcreator下载,这里使用的是2.5.2版本(qt-creator-linux-x86_64-opensource-2.5.2.bin)。 http://download.qt.io/archive/qtcreator/ 二. 安装环境 分别安装Vmware Fusion, VMware Tools, QT 安装下列工具: sudo apt-get update                   // 更新软件源 sudo apt-get install vim                // 安装vim编辑器 sudo apt-get install build-essential         // 安装C/C++编译器 sudo apt-get install automake autogen autoconf   // 安装automake sudo apt-get install libqt4-* libqml*  

网络通信协议、UDP通信、TCP通信

℡╲_俬逩灬. 提交于 2019-11-29 13:58:28
网络通信协议 网络通信协议有很多种,目前应用最广泛的是 TCP/IP 协议 ,它是一个 包括 TCP 协议 和 IP 协议 , UDP 协议 和其它一些协议的协议组。 IP 地址和端口号 目前, IP 地址 广泛使用的版本是 IPv4 ,它是由 4 个字节大小的二进制数来表示,如: 00001010000000000000000000000001 。 通常会将 IP 地址写成十进制的形式,每个字节用一个十进制数字 (0-255) 表示,数字间用符号“ . ”分开,如 “ 192.168.1.100 ”。 通过 IP 地址可以连接到指定计算机,但如果想访问目标计算机中的某个应用程序,还需要指定 端口号 。 在计算机中,不同的应用程序是通过端口号区分的。端口号是用两个字节( 16 位的二进制数)表示的,它的取值范围是 0~65535,其中,0~1023 之间的端口号用于一些知名的网络服务和应用 , 用户的普通应用程序需要使用 1024 以上的端口号 ,从而避免端口号被另外一个应用或服务所占用。 InetAddress类 代码演示 public class Example01 { public static void main(String[] args) throws Exception { InetAddress local = InetAddress.getLocalHost();

Socket通信实例(C#)

♀尐吖头ヾ 提交于 2019-11-29 11:17:06
SOCKET原理 一、套接字(socket)概念   套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。   应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应 用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。 二、建立socket连接   建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。   套接字之间的连接过程分为三个步骤: 服务器监听,客户端请求,连接确认。 服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求 客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字

转:socket

↘锁芯ラ 提交于 2019-11-29 11:13:32
 最近浏览了几篇有关Socket发送消息的文章,发现大家对Socket Send方法理解有所偏差,现将自己在开发过程中对Socket的领悟写出来,以供大家参考。   (一)架构   基于TCP协议的Socket通信,架构类似于B/S架构,一个Socket通信服务器,多个Socket通信客户端。Socket通信服务器启动时,会建立一个侦听Socket,侦听Socket将侦听到的Socket连接传给接受Socket,然后由接受Socket完成接受、发送消息,当Socket存在异常时,断开连接。在实际开发项目中,往往要求Socket通信服务器能提供高效、稳定的服务,一般会用到以下技术:双工通信、完成端口、SAEA、池、多线程、异步等。特别是池,用的比较多,池一般包括一下几种: 1)Buffer池,用于集中管控Socket缓冲区,防止内存碎片。 2)SAEA池,用于集中管控Socket,重复利用Socket。 3)SQL池,用于分离网络服务层与数据访问层(SQL的执行效率远远低于网络层执行效率)。 4)线程池,用于从线程池中调用空闲线程执行业务逻辑,进一步提高网络层运行效率。   (二)Send   主服务器接受Socket为一端口,客户端Socket为一端口,这两个端口通过TCP协议建立连接,通信基础系统负责管理此连接,它有两个功能:   1)发送消息   2)接受消息  

深入探析c# Socket

戏子无情 提交于 2019-11-29 11:13:10
  最近浏览了几篇有关Socket发送消息的文章,发现大家对Socket Send方法理解有所偏差,现将自己在开发过程中对Socket的领悟写出来,以供大家参考。   (一)架构   基于TCP协议的Socket通信,架构类似于B/S架构,一个Socket通信服务器,多个Socket通信客户端。Socket通信服务器启动时,会建立一个侦听Socket,侦听Socket将侦听到的Socket连接传给接受Socket,然后由接受Socket完成接受、发送消息,当Socket存在异常时,断开连接。在实际开发项目中,往往要求Socket通信服务器能提供高效、稳定的服务,一般会用到以下技术:双工通信、完成端口、SAEA、池、多线程、异步等。特别是池,用的比较多,池一般包括一下几种: 1)Buffer池,用于集中管控Socket缓冲区,防止内存碎片。 2)SAEA池,用于集中管控Socket,重复利用Socket。 3)SQL池,用于分离网络服务层与数据访问层(SQL的执行效率远远低于网络层执行效率)。 4)线程池,用于从线程池中调用空闲线程执行业务逻辑,进一步提高网络层运行效率。   (二)Send   主服务器接受Socket为一端口,客户端Socket为一端口,这两个端口通过TCP协议建立连接,通信基础系统负责管理此连接,它有两个功能:   1)发送消息   2)接受消息  

Mina实现Socket通信完整过程

做~自己de王妃 提交于 2019-11-28 07:10:27
目录 服务端 客户端 通信 自定义工厂编解码 解码器 编码器 总结 # 加入战队 微信公众号 title: Mina服务端客户端通信 date: 2018-09-30 09:00:30 tags: - [mina] - [tcp] categories: - [编程] permalink: zxh --- 前两章节已经完整的介绍了理论部分,今天我们就利用这些理论来实现tcp协议的c/s 通信。首先我们简单回顾下之前的介绍, 在mina中我们的客户端和服务端简直就是一模一样,只是我们用不同适配器。但是他的数据处理流程是一样的。今天我们就重点看看如何建立服务端、客户端 并且处理两者之间的消息通信处理 服务端 服务端和客户端不同的就是我们创建的监听对象不同而已,客户端发送消息到服务端,服务端需要经历过滤器的处理才能到达消息中心,但是在过滤器中我们就需要将消息进行解码,然后才会到消息接收的地方处理我们的业务。正常情况下我们处理完消息需要对客户端进行回应。回应的时候也会经历过滤器中的编码逻辑,进行数据编码然后发送。信息发送到客户端我们可以看成服务端的方向。也是需要进行编解码的。下面看看服务端的创建代码 //创建监听对象 IoAcceptor acceptor = new NioSocketAcceptor(); TextLineCodecFactory

socket模拟客户端和服务端

╄→尐↘猪︶ㄣ 提交于 2019-11-28 05:21:45
思路:客户端先接收键盘的数据,变为输出流再转化为打印流,安行发送,接收来自服务端的数据,按行读取,最后关闭输入输出,释放资源 服务端按行接收数据,进行处理,变为输出流再转化为打印流,安行发送,最后关闭输入输出,释放资源 场景:存入缓冲区之间,快速实现,拥有好的用户体验,搜索,注册账号。 如图: 套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。 //套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。 public class Client{ public static void main(String[] args) throws IOException{ Socket socket = new Socket(); socket.setSoTimeout(3000); 超时时间为3秒 socket.connect(new InetSocketAddress(Inte4Address.getLocalHost(),port=2000),timeout=3000); System.out.println("打印本机地址和本机端口号"+socket.getLocalAddress()+"p:"+socket.getLocalPort()); try{

网络聊天室

…衆ロ難τιáo~ 提交于 2019-11-28 02:48:22
---------------------- ASP.Net+Android+IO开发S 、 .Net培训 、期待与您交流! ---------------------- 服务端 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Net; using System.Threading; using System.IO; namespace MyChatroomServer { public partial class MyChatroomServer : Form { public MyChatroomServer() { InitializeComponent(); TextBox.CheckForIllegalCrossThreadCalls = false; //关闭对文本框的跨线程操作 } Thread threadWatch

嵌入式开发日记(9)——多线程与socket通信

空扰寡人 提交于 2019-11-27 03:15:41
尝试用多线程,socket网络编程,心跳检测机制,实时绘图,丢包检测机制,校验位检测,超时重传机制, 数据库存储等功能优化项目 多线程与socket编程: 参考链接: https://blog.csdn.net/qq_39687901/article/details/81531101 Python多线程socket通信 https://www.runoob.com/python3/python3-multithreading.html Python多线程 首先,需要明白的是socket的accept和recv这两个方法是阻塞线程的。这就意味着我们需要新开线程来处理这两个方法。 具体的程序流程大概是这样的: 1.新开一个线程用于接收新的连接(socket.accept()) 2.当有新的连接时,再新开一个线程,用于接收这个连接的消息(socket.recv()) 3.主线程做为控制台,接收用户的输入,进行其他操作 也就是说, 服务端需要为每一个连接创建一个线程。 服务端(上位机)功能: 1 创建接口 2 接收多客户端数据 3 分别记录到本地txt import serial import socket # 导入 socket 模块 from threading import Thread import os import time ADDRESS = ('127.0.0.1',