首页 > 编程语言 >ruby网络编程(1)

ruby网络编程(1)

时间:2023-07-01 19:36:44浏览次数:51  
标签:Socket puts Please 编程 SOCK 网络 接字 ruby line

目录

socket

概述

  • 类套接字socket提供对底层操作系统套接字实现的访问。它可以用来提供比协议特定套接字类更多的操作系统特定功能。

  • 在Socket::Constants 下定义的常量也在Socket下定义。例如,Socket::AF_INET和Socket:∶Constants::AF_NET都可用。

  1. SOCK_STREAM:流套接字为字节流提供有序、可靠的双向连接
  2. SOCK_DGRAM:数据报套接字提供无连接、不可靠的消息传递
  3. SOCK_RAW:原始套接字为直接访问或实现网络协议提供低级访问
  4. SOCK_RDM:可靠的数据报套接字提供可靠的消息传递
  5. SOCK_SEQPACKET:顺序数据包套接字为数据报提供顺序、可靠的双向连接
  6. SOCK_PACKET:设备级数据包访问
  7. SOCK_NONBLOCK:在新文件描述符引用的打开文件描述(请参见打开(2))上设置O_NONBLOCK文件状态标志。
  8. SOCK_CLOEXEC: 在新文件描述符上设置执行时关闭(FD_CLOEXEC)标志。
  • 套接字是双向通信通道的端点。套接字可以在进程内、同一机器上的进程之间或不同机器之间进行通信。

  • domain: 协议系列:

    Socket::PF_INET

    Socket::PF_INET6

    Socket::PF_UNIX

  • type:两个端点之间的通信类型

    Socket::SOCK_STREAM

    Socket::SOCK_DGRAM.

  • protocol: 通常为零。这可以用于识别协议的变体。

  • hostname: 网络接口的标识符:

字符串(主机名、IPv4或IPv6地址或指定广播地址的广播)

指定INADDR_ANY的零长度字符串

一个整数(按主机字节顺序解释为二进制地址)。

ftp client

#!/usr/bin/ruby 
#encoding:UTF-8
require 'socket'

s = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM)
s.connect(Socket.pack_sockaddr_in(21, 'ftp.sunet.se'))
line=s.gets()
puts line
s.puts("USER anonymous")
line=s.gets()
puts line
s.puts("PASS anonymous")
line=s.gets()
puts line
s.puts("quit")
while answer=s.gets() do
   puts answer
end

[maisipu@fedora learn]$ /bin/sh /tmp/geany_run_script_JZFL71.sh
220 Please use https://mirror.accum.se/ whenever possible.
331 Please specify the password.
230 Login successful.
221 Goodbye.


[maisipu@fedora learn]$ /bin/sh /tmp/geany_run_script_JZFL71.sh
220 Please use https://mirror.accum.se/ whenever possible.
331 Please specify the password.
230 Login successful.
221 Goodbye.

标签:Socket,puts,Please,编程,SOCK,网络,接字,ruby,line
From: https://www.cnblogs.com/waterruby/p/17519754.html

相关文章

  • 并发编程
    并发安全问题是由于多线程环境下对临界区进行写操作而引发的,为了解决这个问题,可以采取保证临界区的原子性的措施,例如加锁或使用CAS操作。加锁机制通过确保同一时间只有一个线程可以进入临界区来保证原子性,而CAS操作是一种无锁的乐观并发控制方式,通过比较并交换操作来实现原子性。......
  • qt 网络编程
    UDP是一个轻量级、不可靠、面向数据报的、无连接的协议,多用于可靠性要求不严格,不是非常重要的传输。//服务器端  h1=newQUdpSocket(this);h1.bind(5555,QUdpSocket::ShareAddress);//绑定端口号connect(h1,&QUdpSocket::readyRead,this,&xx::YY);//接受到其它地方发......
  • 常见的网络攻击原理及解决方案
    常见的网络攻击原理及解决方案常见的网纲攻击原理及解决方案网络安全是当今互联网时代不可忽视的话题,随着网络技术的发展,网络攻击也日益猖獗和复杂。网络攻击可能会给网站、应用、服务器、数据库等造成严重的损害,甚至导致数据泄露、资金损失、信誉受损等后果。因此,了解常见的网......
  • A004 《天狗食月》编程 源码
    一、课程介绍本节课将学习Python中的for循环,并应用画笔后退和画圆的知识,最终绘制出月食过程。二、重难点解析for循环我们在编程时,有些代码和逻辑是重复的,这个时候可以考虑使用for循环,减少重复的代码。for循环的基本格式与缩进基本格式:foriinrange(3):语句1语句2......
  • DevChat:将 GPT-4 无缝融入 VS Code,极致提升你的编程体验
    一、絮絮叨叨用GPT辅助编程是啥体验?用DevChat辅助编程是啥体验?体验就是,每天和这货聊聊天,事情就干完了,你看:每天上午睡懒觉,中午睡午觉,下午醒来就和DevChat唠唠嗑,然后这货就帮我写了几百行代码。赶在下班前一个提交,老板还得夸我效率高,“辛苦辛苦,写这么多!”今日个早起了吧......
  • Ruby web开发实战(8)-Ruby疑难点(4)
    目录Proc与lambda传引用Proc与lambda#!/usr/bin/ruby#encoding:UTF-8numSum=Proc.newdo|x|result=0x.eachdo|n|result+=nendresultendputsnumSum.call([11,22,33])66------------------(programexitedwithcode......
  • C++ 编程中的核心知识点
    const作用修饰变量,说明该变量不可以被改变;修饰指针,分为指向常量的指针(pointertoconst)和自身是常量的指针(常量指针,constpointer);修饰引用,指向常量的引用(referencetoconst),用于形参类型,即避免了拷贝,又避免了函数对值的修改;修饰成员函数,说明该成员函数内不能修改成员......
  • WinPcap编程常用库函数
    PCAP常用库函数pcap_t*pcap_open_live(char*device,intsnaplen,intpromisc,intto_ms,char*ebuf)获得用于捕获网络数据包的数据包捕获描述字。device参数为指定打开的网络设备名。snaplen参数定义捕获数据的最大字节数。promisc指定是否将网络接口置于混杂模式......
  • 网络安全 | 密码基础知识介绍
    概述密码介绍安全问题保密性:对发送的消息进行获取完整性:对发送的消息进行篡改身份伪造:对发送的主体身份进行篡改,a发的消息,篡改为b发的行为抵赖:对发送的消息进行否认,丧失行为的可追溯性密码技术保密性完整性真实性不可否认性密码发展史密码起源:狼烟、虎符,基于“密语”古典密码:凯撒密......
  • 助教工作总结(计算机网络)
    一、助教工作的具体职责和任务(1)与该课程的其他助教相互配合·共同完成课后作业的答疑活动·协调沟通两个班学生进行实验的时间·互相讨论交流遇到的问题以及批改作业情况(2)与老师之间的配合·协助老师完成相应的实验课程安排·批改每章节的课后作业并及时向老师反馈完......