标签: sockets

套接字编程中AF_INET和PF_INET有什么区别?

套接字编程中AF_INET和PF_INET有什么区别?

我和在socket()和中使用AF_INET和PF_INET之间的困惑bind().

另外,如何在sin_addr现场提供ip-address ?

c sockets linux

198
推荐指数
6
解决办法
16万
查看次数

Internet上最大的安全UDP数据包大小是多少

我已经阅读了很多关于UDP数据包大小的文章,但是无法得出结论.

许多服务将最大的UDP数据包限制为512字节(如dns)

给定互联网上的最小MTU为576,IPv4标头的大小为20字节,UDP标头为8字节.这留下了548个可用于用户数据的字节

我是否能够使用大小为548的数据包而不会出现数据包碎片?或者是DNS的创建者知道什么,以及为什么他们将其限制为512字节.

我能安全地高于548字节吗?

sockets networking udp ipv4

194
推荐指数
9
解决办法
25万
查看次数

如何找到可用的端口?

我想启动一个监听端口的服务器.我可以明确指定端口,它可以工作.但我想以自动方式找到一个端口.在这方面,我有两个问题.

  1. 我应该在哪个端口号范围内搜索?(我使用了端口12345,12346和12347,它很好).

  2. 如何确定某个端口是否未被其他软件占用?

java sockets port networking

188
推荐指数
11
解决办法
17万
查看次数

什么是AF_INET,为什么需要它?

我正在开始使用套接字编程,我一直在看这个AF_INET.

然而,我从来没有见过任何其他用途.我的讲师不是那么有用,只是说"你只需要它".

所以我的问题:

  • 目的是AF_INET什么?
  • 还有其他东西用来代替吗?
    • 如果没有,为什么会在那里?对于未来可能的变化?
    • 如果是这样,为什么和为什么?

sockets

181
推荐指数
4
解决办法
18万
查看次数

read()和recv()之间有什么区别,send()和write()之间有什么区别?

read()和recv()之间的区别,以及socket编程中send()和write()之间的区别是什么?性能和速度等行为.

c unix sockets posix network-programming

179
推荐指数
6
解决办法
9万
查看次数

SSL施加了多少开销?

我知道没有单一的硬性和快速的答案,但是对于SSL的加密开销与未加密的套接字通信,是否存在通用的数量级估计近似值?我只谈论通信处理和线路时间,而不是计算应用级处理.

更新

一个关于HTTPS与HTTP的问题,但我有兴趣在堆栈中看得更低.

(我更换了那句"的数量级",以避免混淆,我用它作为非正式的术语,而不是在正规CompSci意义当然,如果我.正式的意思是,作为一个真正的怪胎我就一直在思考的二进制,而不是小数!;-)

更新

根据评论中的每个请求,假设我们讨论的是持久连接上的大小良好的消息(范围为1k-10k).因此,连接建立和数据包开销不是重要问题.

sockets performance ssl overhead

165
推荐指数
3
解决办法
10万
查看次数

套接字的连接和读取超时有什么区别?

3个问题:

  1. 套接字的连接读取超时有什么区别?

  2. 什么连接超时设置为"无限"是什么意思?在什么情况下它可以保持在一个不定式循环中?什么可以触发无限循环死亡?

  3. 什么是超时设置为"无限"是什么意思?在什么情况下它可以保持在一个不定式循环中?什么可以触发无限循环死亡?

java sockets connection timeout

162
推荐指数
2
解决办法
12万
查看次数

mysqld_safe UNIX套接字文件的目录'/ var/run/mysqld'不存在

在使用mysqld_safe启动mysql server 5.7.17时,会出现以下错误:occcours.

2017-02-10T17:05:44.870970Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-10T17:05:44.872874Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-10T17:05:44.874547Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
Run Code Online (Sandbox Code Playgroud)

怎么解决?

mysql sockets

156
推荐指数
3
解决办法
15万
查看次数

"软件导致连接中止的正式原因:套接字写入错误"

鉴于此堆栈跟踪代码段

引起:java.net.SocketException:软件导致连接中止:
 java.net.SocketOutputStream.socketWrite0(本机方法)中的套接字写入错误

我试着回答以下问题:

  1. 什么代码抛出此异常?(JVM?/ Tomcat?/我的代码?)
  2. 是什么导致抛出此异常?

关于#1:

Sun的JVM源代码不包含这个确切的消息,但我认为文本软件导致连接中止:套接字写入错误来自本机实现SocketOutputStream:

private native void socketWrite0(FileDescriptor fd, byte[] b, int off,
                 int len) throws IOException;
Run Code Online (Sandbox Code Playgroud)

关于#2

我的猜测是,它是在客户端终止连接之前,在获得完整响应之前引起的(例如,发送请求,但在获得完整响应之前,它已关闭/终止/脱机)

问题:

  1. 以上假设是否正确(#1和#2)?
  2. 这可能与情况有所区别:"由于服务器端的网络错误,"无法写入客户端"?或者会呈现相同的错误消息?
  3. 最重要的:是否有正式文件(例如来自Sun)说明上述内容?

我需要证明这个堆栈跟踪是套接字客户端的"错误",并且服务器没有做任何事情来避免它.(除了捕获异常,或使用非Sun JVM SocketOutputStream,但两者都没有真正避免客户端终止的事实)

java sockets tomcat exception stack-trace

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

socket和websocket之间的区别?

我正在构建需要使用套接字连接与另一个应用程序通信的Web应用程序.这对我来说是一个新领域,所以要确保套接字不同于websockets.看起来它们只是在概念上相似.

问起因为我最初计划使用Django作为我的项目的基础,但是在上面链接的SO帖子中,很明显webocket是不可能的(或者至少不可靠,即使像django-websockets这样的东西也是如此)使用首选的Django设置(Apache与mod_wsgi).然而,我发现其他帖子随便导入Python的套接字模块,就像获取服务器的主机名一样简单.

所以:

  • 他们真的不一样吗?
  • 是否有任何理由不将Django用于依赖于与外部服务器建立套接字连接的项目?

sockets mod-wsgi websocket

146
推荐指数
6
解决办法
9万
查看次数