我有一个很大的问题。有一个应用程序,其中包含以下方法: socket(AF_INET,SOCK_STREAM,0); 套接字返回29,我看不到终端中的端口(netstat)。
我在Android-ndk中使用此方法,并在Android Manifest文件中使用INTERNET权限。
方法有什么问题?
由于
答案 0 :(得分:4)
29是套接字号,您将在调用其他套接字API函数(绑定,连接等)时使用它。
你没有在netstat中看到它,因为你还没有把它绑定到任何东西。要让它显示在那里,请致电connect
或bind
,accept
,listen
(取决于您打算如何处理)。
答案 1 :(得分:1)
socket()
的返回码只是文件描述符,而不是端口号。如果您打算创建服务器,则需要致电listen()
,bind()
和accept()
。
答案 2 :(得分:1)
也许您应该bind()
,listen()
和accept()
(如果这是服务器)或connect()
(如果是客户端),然后才能在netstat中看到它。
BTW,使用netstat -a
查看绑定但未连接的套接字。