这个问题可能听起来很基本。在c或Java中是否有任何函数可以使用套接字标识符获取套接字详细信息,如端口,地址,缓冲区大小?
答案 0 :(得分:2)
我可以获得的一些最小信息发布在下面。
我对Java知之甚少。但就“C”而言,您可以使用getsockopt函数来获取套接字的缓冲区大小(发送缓冲区和recv缓冲区)。
似乎getsockname可以帮助您获取IP&套接字绑定到的端口。
答案 1 :(得分:0)
在函数中的c中接受:
csock = accept(sock, (struct sockaddr*)&csin, &recsize);
从套接字ID尝试:
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
f()
{
int s;
struct sockaddr_in sa;
int sa_len;
.
.
.
/* We must put the length in a variable. */
sa_len = sizeof(sa);
/* Ask getsockname to fill in this socket's local */
/* address. */
if (getsockname(s, &sa, &sa_len) == -1) {
perror("getsockname() failed");
return -1;
}
/* Print it. The IP address is often zero beacuase */
/* sockets are seldom bound to a specific local */
/* interface. */
printf("Local IP address is: %s\n", inet_ntoa(sa.sin_add r));
printf("Local port is: %d\n", (int) ntohs(sa.sin_port));
.
.
.
}