socket

网络编程

久未见 提交于 2020-03-22 03:51:39
InetAddress import java.net.InetAddress; import java.net.UnknownHostException; public class test01 { /** * 端口号与IP地址的组合得出一个网络套接字:Socket * * 1. 本地回路地址:127.0.0.1 对应着:localhost * 2. InetAddress的两个实例化方法:getByName(String host)、getLocalHost() * 3. InetAddress的两个常用方法:getHostName()、getHostAddress() * @param args */ public static void main(String[] args) throws UnknownHostException { InetAddress inet1 = InetAddress.getByName("192.168.10.23"); System.out.println(inet1); InetAddress inet2 = InetAddress.getByName("www.baidu.com"); System.out.println(inet2); InetAddress inet3 = InetAddress.getByName("127.0

你得学会并且学得会的Socket编程基础知识

偶尔善良 提交于 2020-03-22 03:47:58
这一篇文章,我将图文并茂地介绍Socket编程的基础知识,我相信,如果你按照步骤做完实验,一定可以对Socket编程有更好地理解。 本文源代码,可以通过这里下载 http://files.cnblogs.com/chenxizhang/SocketWorkshop.rar 第一步:创建解决方案 第二步:创建服务端程序 这里可以选择“Console Application”这个类型,比较方便调试 然后编写如下代码,实现服务器的基本功能 using System; using System.Collections.Generic; using System.Linq; using System.Text; //额外导入的两个命名空间 using System.Net.Sockets; using System.Net; namespace SocketServer { class Program { /// <summary> /// Socket Server 演示 /// 作者:陈希章 /// </summary> /// <param name="args"></param> static void Main(string[] args) { //创建一个新的Socket,这里我们使用最常用的基于TCP的Stream Socket(流式套接字) var socket = new

Socket I/O模型全接触

◇◆丶佛笑我妖孽 提交于 2020-03-22 01:34:05
声明:除CSDN外的任何媒体转载必须注明作者以及“转载自CSDN”。 本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教。 一:select模型 二:WSAAsyncSelect模型 三:WSAEventSelect模型 四:Overlapped I/O 事件通知模型 五:Overlapped I/O 完成例程模型 六:IOCP模型 老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的信箱里。 这和Socket模型非常类似。下面我就以老陈接收信件为例讲解Socket I/O模型~~~ 一:select模型 老陈非常想看到女儿的信。以至于他每隔10分钟就下楼检查信箱,看是否有女儿的信~~~~~ 在这种情况下,“下楼检查信箱”然后回到楼上耽误了老陈太多的时间,以至于老陈无法做其他工作。 select模型和老陈的这种情况非常相似:周而复始地去检查......如果有数据......接收/发送....... 使用线程来select应该是通用的做法: Code procedure TListenThread.Execute; var addr : TSockAddrIn; fd_ read : TFDSet; timeout : TTimeVal; ASock, MainSock : TSocket

web框架

心不动则不痛 提交于 2020-03-21 21:49:33
web框架 框架,framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,对于所有的web应用,本质上就是一个socket服务端,用户的浏览器其实就是一个socket客户端。 最简单的web框架 最简单的web应用就是先把html用文件保存好,用一个现成的http服务器软件,接收用户请求,从文件中读取html,返回。如果要动态生成HTML,就需要把上述步骤自己来实现。不过,接受HTTP请求、解析HTTP请求、发送HTTP响应都是苦力活,如果我们自己来写这些底层代码,还没开始写动态HTML呢,就得花个把月去读HTTP规范。正确的做法是底层代码由专门的服务器软件实现,我们用Python专注于生成HTML文档。因为我们不希望接触到TCP连接、HTTP原始请求和响应格式,所以,需要一个统一的接口,让我们专心用Python编写Web业务。 这个接口就是WSGI:WebServerGatewayInterface,web服务网关接口 来源: https://www.cnblogs.com/juteng/p/9355919.html

2019-06-04 Java学习日记之网络编程

假如想象 提交于 2020-03-21 08:16:40
网络编程三要素之IP概述: 每个设备在网络中的唯一标识 每台网络终端在网络中都要一个独立的地址,我们在网络中传输数据就是使用这个地址 ipconfig:查看本机IP ping:测试连接 本地回路地址:127.0.0.1 255.255.255.255是广播地址 IPv4:4个字节组成,4和0-255、大概42亿,30亿都在北美,亚洲4亿。2011年初已经用尽 IPv6:8组,每组4个16进制数 1a2b:0000:aaaa:0000:0000:0000:aabb:1f2f 1a2b::aaaa:0000:0000:0000:aabb:1f2f 1a2b:0000:aaaa::aabb:1f2f 1a2b:0000:aaaa::0000:aabb:1f2f 1a2b:0000:aaaa:0000::aabb:1f2f 网络编程三要素之端口号概述: 每个程序在设备上的唯一标识 每个网络程序都需要绑定一个端口号,传输数据的时候除了确定发到哪台机器上海要明确发到哪个程序 端口号范围从0-65535 编写网络应用就需要绑定一个端口号,尽量使用1024以上的,1024以下的基本上都被系统程序给占用了 常用端口   mysql:3306   oracle:1521   web:80   tomcat:8080   QQ:4000   feiQ:2425 网络编程三要素协议:

socket实现TCP简单循环通信(Python)

坚强是说给别人听的谎言 提交于 2020-03-21 01:05:15
一、socket通信过程 TCP服务器端创建套接字 --> 绑定IP地址和端口 --> 监听客户端连接请求 --> 接收客户端连接(建立客户端连接) --> 阻塞直到有客户端连接 --> 处理请求(通信循环) --> 关闭连接 --> 关闭套接字 TCP客户端创建套接字 --> 连接服务端IP以及端口 --> 处理请求(通信循环) --> 关闭套接字 二、套接字函数 1.服务端套接字函数 s.bind(address) 将套接字绑定到地址,在AF_INET下,以元组(host,port)的形式表示地址。 s.listen(backlog) 开始监听TCP传入连接。backlog指定在拒绝连接之前,操作系统可以挂起的最大连接数量。该值至少为1,大部分应用程序设为5就可以了。 s.accept() 接受TCP连接并返回(conn,address),其中conn是新的套接字对象,可以用来接收和发送数据。address是连接客户端的地址。 2.客户端套接字函数 s.connect(address) 连接到address处的套接字。一般address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。 3.公共套接字函数 s.recv(bufsize[,flag]) 接受TCP套接字的数据。数据以字符串形式返回,bufsize指定要接收的最大数据量

node.js+socket.io创建web聊天室

独自空忆成欢 提交于 2020-03-20 23:53:24
最近在研究直播 需要做一个webIM 聊天的功能 找到了这个socket.io 从 http://www.plhwin.com/2014/05/28/nodejs-socketio/ 和 socket.io官网 https://socket.io/get-started/chat/ 学到很多 , 下面的代码也是基于这两篇文章,感谢 他们让我学到新的知识 搭建聊天室 首先需要一个用nodeJs 搭建的server 第一步: 在任意一个位置创建一个 文件夹 ,一会要将js、html等文件放在其中 我创建的是chat文件夹。 第二步: 要把运行node的环境搭好,上node官网 下载一个,安装上 就可以了, 一切准备就绪后打开 node.js command prompt 也就是那个黑的框框 ,进入到你当前的工作路径, 我的是D:\my\chat 第三步: 在你刚刚创建的目录下 创建一个index.js,搭建node server,代码如下: var express = require('express'); var app = express(); var http = require('http').Server(app); app.get('/', function(req, res){ res.send("hello"); }); http.listen(3001,

TCP程序开发步骤

南笙酒味 提交于 2020-03-20 23:42:27
TCP是面向连接的协议,需要通信双方首先建立一个连接。因为TCP可靠、稳定的特点,它被应用于大部分场合,但它对系统资源要求比较高。 TCP协议服务端程序的开发流程如下所示。 // 初始化Winsock库,获得协议版本 // 创建服务Socket对象 (指定协议类型,地址族信息) // 绑定Socket (将指定的IP,端口绑定给Socket) // 开始监听,并且设置监听数量. (开始监听后,客户端就可以连接成功) // 开启端口,接收连接 // 收发数据(利用建立连接的Socket对象进行通信) // 关闭Socket连接 // 终止Winsock库的调用 开发一个TCP服务端程序,在完成 初始化Winsock库 和 创建套接字(Socket)对象 两个通用步骤后,还要完成如下步骤。 (1)绑定套接字到指定IP地址和端口 无论是使用哪种协议的服务端程序,都要将服务端的IP地址和端口绑定给先前创建的套接字,客户端程序将与之进行通信。绑定套接字的函数是bind,原型如下。 int bind( SOCKET s, //套接字句柄 const struct sockaddr FAR *name, //要绑定的地址 int namelen //name所指定的地址长度 ); 第一个参数s是要绑定地址的套接字句柄,由socket函数返回。 第二个参数name是指向sockaddr结构体的指针

服务器 客户端 实现TCP 1--socket

懵懂的女人 提交于 2020-03-19 04:55:33
附上其他好的文章的链接 https://blog.csdn.net/wo541075754/article/details/66971888 https://blog.csdn.net/u012561176/article/details/48183181 https://blog.csdn.net/u010142437/article/details/18039961 https://blog.csdn.net/alen0217/article/details/42558085 https://blog.csdn.net/qq_34444097/article/details/78955511 小笔记:~Thread t 的意思是声明线程t ,new Thread(this) 的意思是把当前的类实例化为一个线程 该Thread对象调用start()方法后,会执行该对象重写的run()方法,结果也就是Run of Thread,输出完后,run()方法返回,该线程对象的生命周期也就结束了。从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1。 finalize方法是Object提供的的实例方法,使用规则如下:当对象不再被任何对象引用时,GC会调用该对象的finalize()方法 finalize(

SOCKET模型之重叠I/O篇(转贴)

浪子不回头ぞ 提交于 2020-03-19 02:54:07
SOCKET模型之重叠I/O篇(转贴) 本文配套的示例源码下载地址 (VC.net 2003编写的多客户端MFC代码,配有详尽注释,只是简单的显示一下客户端发来的字符,稍加改进就是个聊天室了): http://www.haha567.com/PiggyXP/OverlappedModel.rar (unix系统,千万注意链接大小写) (本文假设你已经具备用SOCKET简单模型编程的能力,如果对SOCKET一无所知请关注本系列其他文章) 目录: 1. 重叠模型的优点 2. 重叠模型的基本原理 3. 关于重叠模型的基础知识 4. 重叠模型的实现步骤 5. 多客户端情况的注意事项 一. 重叠模型的优点 1. 可以运行在支持Winsock2的所有Windows平台 ,而不像完成端口只是支持NT系统。 2. 比起阻塞、select、WSAAsyncSelect以及WSAEventSelect等模型,重叠I/O(Overlapped I/O)模型使应用程序能达到更佳的系统性能。 因为它和这4种模型不同的是,使用重叠模型的应用程序通知缓冲区收发系统直接使用数据,也就是说,如果应用程序投递了一个10KB大小的缓冲区来接收数据,且数据已经到达套接字,则该数据将直接被拷贝到投递的缓冲区。 而这4种模型种,数据到达并拷贝到单套接字接收缓冲区中,此时应用程序会被告知可以读入的容量