草庐IT

Send_Buf

全部标签

python 套接字 : make sure that TCP packets are send before closing connection

我正在使用通过TCP控制的中继。据我了解,以下代码应该有效:s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect(('192.168.0.200',17494))s.send(chr(101))s.close()但是,我注意到套接字在实际发送包之前关闭了,并且中继没有做任何事情。作为肮脏的解决方案,我现在在关闭连接之前放置了一个sleep语句并且它可以正常工作。s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect(('192.168.0.200',1749

sockets - 是成功的 send() "atomic"吗?

成功调用send()并且返回的数字等于size参数中指定的数量是否保证不会发生“部分发送”?或者有什么方法可以让操作系统在为系统调用提供服务时中断,发送部分数据,等待可能很长时间,然后发送其余部分并返回而不通知我较小的返回值?我不是在谈论内核缓冲区中没有足够空间的情况;我意识到我会得到一个较小的返回值并且必须重试。更新:根据目前的答案,我的问题可以改写如下:在调用send()返回之前是否有任何方法可以通过线路发送数据包/数据? 最佳答案 Doesasuccessfulcalltosend()withthenumberreturned

c++ - 如何关闭 POSIX 函数 send() 中的 TCP PSH 标志?

我正在使用以太网向步进电机系统发送命令。命令使电机移动,或响应驱动器状态,或配置驱动器等...步进电机系统有时会挂起或无法执行命令,制造商查看了我提供的所有内容后告诉我关闭TCP层的PSH标志。显示我的代码使用PSH标志的Wireshark屏幕截图:我正在使用在Ubuntu(16.04)中运行的C++11。我的发送函数如下所示:intsendStatusCode=send(socket,*&pointerToMessageAsCharArray,sizeOfMessage,0);我看了thewriteup对于函数,我知道最后一个参数(我在0处有)是一个标志。我不明白的是我需要插入的值来

c - 使用 C TCP 套接字, 'send' 可以返回零吗?

使用TCP套接字时,Csend函数是否可能返回零?手册页只是说它会返回发送的字节数,但我不确定它是否会在无法发送任何数据时只返回-1。 最佳答案 我很确定,尽管内存在时间的迷雾深处,但我以前见过它返回零,在另一端跟不上的海量数据传输的情况下。根据内存,在那种情况下,远程TCP堆栈缓冲区已满,堆栈已通知本地端它要延迟,直到一些空间被清除并且本地缓冲区也已满。此时,从技术上讲,这不是错误(因此没有返回-1),但本地堆栈无法接受任何数据。我不是完全现在是这种情况,因为当前的Posix标准似乎表明它会在这种情况下简单地阻塞(或者如果它设置为

sockets - send() 之后直接关闭() 套接字 : unsafe?

在最后一个send()之后直接close()套接字是否明智/安全?我知道即使在关闭套接字后,TCP也应该尝试传送发送缓冲区中的所有剩余数据,但我真的可以指望它吗?我正在确保我的接收缓冲区中没有剩余数据,以便在我关闭后不会发送RST。在我的例子中,关闭实际上是调用exit()之前的最后一个代码语句。即使在发送数据的进程终止后,TCP堆栈真的会继续尝试传输数据吗?这是否与在通过设置SO_LINGER调用close()之前自己等待任意超时一样可靠?也就是说,应用相同的TCP超时还是更短?毕竟,如果发送缓冲区很大且连接速度较慢,实际传输所有缓冲数据的时间可能会很长。我对收到发送的最后一个字节的

tcp - 完全阻塞套接字 : when,, "send()"是否返回?

BSD套接字send()函数究竟何时返回给调用者?在非阻塞模式下,它应该立即返回,对吗?至于阻塞模式,manpage说:Whenthemessagedoesnotfitintothesendbufferofthesocket,send()normallyblocks,unlessthesockethasbeenplacedinnon-blockingI/Omode.问题:这是否意味着如果内核发送缓冲区中有空间,send()调用将始终立即返回?对于TCP和UDP,send()调用的行为和性能是否相同?如果不是,为什么不呢? 最佳答案

javascript - 苹果 TVML : Send APP to background when Menu button pressed on Siri remote

在TVML应用程序中从SiriRemote按下“菜单”按钮时,我不知道如何将应用程序发送到后台。我是TVML开发的新手。我正在尝试TVML开发,并创建了一个小型演示应用程序,我会在应用程序启动后立即播放视频。现在问题是按照苹果的指导方针,如果我在我的根页面上,我按下siriRemote上的菜单按钮,那么我的应用程序应该进入后台。现在我的应用程序没有相应的行为。我尝试了很多解决方案,例如:如下所示注册我的appDelegate()成为FirstResponder-UIApplication.sharedApplication().beginReceivingRemoteControlEv

java.lang.NoClassDefFoundError : javax/el/PropertyNotFoundException when I send invalid values to controller 错误

我使用MockMvc进行Controller测试@TestpublicvoidupdateEvent()throwsException{MockHttpServletRequestBuilderrequest=MockMvcRequestBuilders.post("/updateEvent");request.param("selectedEventStatusId","1");request.param("selectedEventTypeId","1");EventeventFromDb=createAndSaveEvent();request.param("idEvent",e

python - Django send_mail 通过 gmail 很慢

当我尝试通过./manage.pyshell发送时,发送一封电子邮件需要几分钟时间。当我尝试在浏览器中提交表单后发送用户验证电子邮件时,浏览器超时并显示504,但最终还是发送了电子邮件。可能发生了什么?设置.py...EMAIL_HOST='smtp.gmail.com'EMAIL_HOST_USER='myemail@gmail.com'EMAIL_PORT=587EMAIL_USE_TLS=TrueDEFAULT_FROM_EMAIL=EMAIL_HOST_USEREMAIL_HOST_PASSWORD=os.environ.get('PASSWORD')...View.pycla

python - flask 单元测试 : send cookies after modifying the session

我正在为我的flask应用程序编写一些单元测试,我需要模拟来自已登录用户的请求(我正在使用flask登录)。我学会了here为此,我需要修改session并添加用户ID和_fresh参数:withapp.test_client()asc:withc.session_transaction()assess:sess['user_id']='myuserid'sess['_fresh']=Trueresp=c.get('/someurl')我的问题是我需要连同请求一起发送一些其他cookie。有点像headers=Headers({'Cookie':'MYCOOKIE=cookie_val