标签: network-programming

什么时候TCP网络数据包在应用层被分段?

什么时候TCP数据包会在应用层被分段?从应用程序发送TCP数据包时,应用程序层的收件人是否会以两个或多个数据包接收数据包?如果是,那么什么条件会导致数据包被分割.似乎数据包在到达以太网(网络层)限制为1500字节之前不会被分段.但是,这个碎片对应用层的接收者是透明的,因为网络层会在将数据包发送到下一层之前重新组合碎片,对吧?

network-programming tcp packet

34
推荐指数
4
解决办法
6万
查看次数

如何编写一个简单的Bittorrent应用程序?

如何编写一个简单的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 python p2p bittorrent network-programming

34
推荐指数
1
解决办法
3万
查看次数

从C/C++程序进行Ping

我想编写一个C或C++程序,给定一个IP地址,ping它然后根据Ping是否成功执行进一步的操作.这该怎么做?

c c++ network-programming ping

34
推荐指数
3
解决办法
6万
查看次数

"192.168.1.1/21"是什么意思?

当他们在IP地址后写一个斜杠后跟一个数字时,这是什么意思?

ip networking network-programming

34
推荐指数
2
解决办法
4万
查看次数

epoll线程安全吗?

epoll有两个功能:

  1. epoll_ctl
  2. epoll_wait

当我使用相同的epoll_fd时,它们是否是线程安全的
如果一个线程调用epoll_wait而其他线程同时调用epoll_ctl会发生什么?

c sockets multithreading network-programming epoll

32
推荐指数
2
解决办法
1万
查看次数

哪本书可以学习套接字编程和TCP网络通信?

在接下来的几个月里,我会做一些小项目,需要一些书籍(最好)或URL来学习一些基本概念.

通常,一台PC或嵌入式设备(根据项目而变化)从外部硬件设备收集一些用户输入或数据,并将其发送到远程PC,远程PC将其输入数据库.

后端将使用Indy套接字组件在Delphi中编码.前端可能是使用相同的Indy套接字运行Delphi应用程序的PC,但它可能同样是一个小型控制器板,可能用C编程(既不是Windows也不是Linux作为o/s,但有一些不可预见的套接字支持).

所以,我需要的是

  1. 一些东西 - 可能是语言不可知 - 让我快速掌握套接字编程
  2. 我可以使用流和写/读来定义我自己的协议(通过TCP/IP)的构造,这将非常简单
  3. 一般网络(TCP?)概念的一些概述; 也许有点安全性,一般客户端/服务器的东西(例如,我可以从客户端发送一些到服务器并发送回复,但我不太确定服务器发起的通信到单个服务器或广播到所有客户端)
  4. 还要别的吗?

任何让我加快速度的建议,至少足以让我能够在工作中学习的小项目.

提前致谢

sockets network-programming tcp scada

31
推荐指数
2
解决办法
3万
查看次数

如何将原始套接字绑定到特定接口

我的应用程序在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)?

c sockets linux network-programming raw-sockets

30
推荐指数
2
解决办法
7万
查看次数

如何制作多人游戏

我已经知道了android编程的基础知识,尤其是游戏中的编程.现在我想尝试多人游戏.但我没有关于多人游戏的任何背景.所以我想提出一些问题:

  1. 多人游戏编程的基础是什么?
  2. 多人游戏的通讯方式如何?它应该是蓝牙吗?或者客户服务器?或者点对点?如果我想制作的游戏需要彼此靠近2个android手机?
  3. 我应该知道什么才能理解这个多人游戏?
  4. 有没有关于如何制作多人游戏的基本教程?
  5. Android手机可以充当服务器吗?

我不打算制作任何复杂的游戏.可能只是多人tic tac toe对我来说没问题.最重要的是我了解多人游戏编程的基本知识.:)

android network-programming multiplayer

30
推荐指数
2
解决办法
5万
查看次数

确切地说,"断管"异常对插座意味着什么?

我有一个Android应用程序与PC上的程序对话.我正在使用Android(Java)Socket类.如果我下次从Android发送内容时停止并重新启动PC应用程序,我会收到IO Exception"Broken Pipe".我的问题与此无关.这是问题:

如果我查询Socket的isClosed()方法得到破坏的管道异常,它返回false(即,它没有关闭),如果我查询Socket的isConnected()方法,它返回true,即它是连接的.有人可以向我解释这些结果吗?提前致谢!

networking android network-programming

30
推荐指数
2
解决办法
3万
查看次数

DNS区域和DNS域之间的区别

我对两个DNS概念感到困惑.我的问题是"DNS区域"和"DNS域"之间的区别是什么?

谢谢

dns networking network-programming tcp-ip

29
推荐指数
1
解决办法
2万
查看次数