什么时候TCP数据包会在应用层被分段?从应用程序发送TCP数据包时,应用程序层的收件人是否会以两个或多个数据包接收数据包?如果是,那么什么条件会导致数据包被分割.似乎数据包在到达以太网(网络层)限制为1500字节之前不会被分段.但是,这个碎片对应用层的接收者是透明的,因为网络层会在将数据包发送到下一层之前重新组合碎片,对吧?
如何编写一个简单的bittorrent应用程序.像使用bittorrent库的"hello world",我的意思是最简单的应用程序来理解bittorrent的工作.我更喜欢python或C/C++实现,但它可以是任何语言.平台也不是问题,但我更喜欢Linux.
关于图书馆的建议,我已经从http://sourceforge.net/projects/bittorrent/develop下载了一个(我认为官方bittorrent)的源代码 .但是,我在http://en.wikipedia.org/wiki/Comparison_of_BitTorrent_clients#Libraries上看到了很多其他库.我很感激有关这方面的建议.
如果只有一台笔记本电脑,如何测试应用程序.
我想编写一个C或C++程序,给定一个IP地址,ping它然后根据Ping是否成功执行进一步的操作.这该怎么做?
当他们在IP地址后写一个斜杠后跟一个数字时,这是什么意思?
epoll有两个功能:
当我使用相同的epoll_fd时,它们是否是线程安全的?
如果一个线程调用epoll_wait而其他线程同时调用epoll_ctl会发生什么?
在接下来的几个月里,我会做一些小项目,需要一些书籍(最好)或URL来学习一些基本概念.
通常,一台PC或嵌入式设备(根据项目而变化)从外部硬件设备收集一些用户输入或数据,并将其发送到远程PC,远程PC将其输入数据库.
后端将使用Indy套接字组件在Delphi中编码.前端可能是使用相同的Indy套接字运行Delphi应用程序的PC,但它可能同样是一个小型控制器板,可能用C编程(既不是Windows也不是Linux作为o/s,但有一些不可预见的套接字支持).
所以,我需要的是
任何让我加快速度的建议,至少足以让我能够在工作中学习的小项目.
提前致谢
我的应用程序在CentOS 5.5上运行.我正在使用原始套接字发送数据:
sd = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
if (sd < 0) {
// Error
}
const int opt_on = 1;
rc = setsockopt(m_SocketDescriptor, IPPROTO_IP, IP_HDRINCL, &opt_on, sizeof(opt_on));
if (rc < 0) {
close(sd);
// Error
}
struct sockaddr_in sin;
memset(&sin, 0, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = my_ip_address;
if (sendto(m_SocketDescriptor, DataBuffer, (size_t)TotalSize, 0, (struct sockaddr *)&sin, sizeof(struct sockaddr)) < 0) {
close(sd);
// Error
}
Run Code Online (Sandbox Code Playgroud)
如何将此套接字绑定到特定的网络接口(例如eth1)?
我已经知道了android编程的基础知识,尤其是游戏中的编程.现在我想尝试多人游戏.但我没有关于多人游戏的任何背景.所以我想提出一些问题:
我不打算制作任何复杂的游戏.可能只是多人tic tac toe对我来说没问题.最重要的是我了解多人游戏编程的基本知识.:)
我有一个Android应用程序与PC上的程序对话.我正在使用Android(Java)Socket类.如果我下次从Android发送内容时停止并重新启动PC应用程序,我会收到IO Exception"Broken Pipe".我的问题与此无关.这是问题:
如果我查询Socket的isClosed()方法得到破坏的管道异常,它返回false(即,它没有关闭),如果我查询Socket的isConnected()方法,它返回true,即它是连接的.有人可以向我解释这些结果吗?提前致谢!
我对两个DNS概念感到困惑.我的问题是"DNS区域"和"DNS域"之间的区别是什么?
谢谢
c ×4
networking ×3
sockets ×3
android ×2
tcp ×2
bittorrent ×1
c++ ×1
dns ×1
epoll ×1
ip ×1
linux ×1
multiplayer ×1
p2p ×1
packet ×1
ping ×1
python ×1
raw-sockets ×1
scada ×1
tcp-ip ×1