免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
论坛 程序设计 C/C++ socket
最近访问板块 发新帖
查看: 1740 | 回复: 9
打印 上一主题 下一主题

socket [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-27 09:34 |只看该作者 |倒序浏览
#include    <winsock2.h>   
#include    <windows.h>
#include        <iostream.h>
#include        <io.h>
#pragma   comment(lib,   "Ws2_32.lib")  
int main()
{
        int server_fd,client_fd;
        int server_len,client_len;

        struct sockaddr_in server_address;
        struct sockaddr_in client_address;

        server_fd=socket(AF_INET,SOCK_STREAM,0);

        server_address.sin_family=AF_INET;
        server_address.sin_port=8888;
        server_address.sin_addr.s_addr=inet_addr("127.0.0.1");
        server_len=sizeof(server_address);

        bind(server_fd,(struct sockaddr*)&server_address,server_len);

        listen(server_fd,10);
       

                char *temp;
                cout<<"server waiting\n";
                client_len=sizeof(client_address);
                client_fd=accept(server_fd,(struct sockaddr *)&client_address,&client_len);
       
        return 0;
}为什么我netstat -an后看不到监听的端口 哪里错了啊?

论坛徽章:
0
2 [报告]
发表于 2009-06-27 09:47 |只看该作者
因为你的程序直接game over了

论坛徽章:
0
3 [报告]
发表于 2009-06-27 09:48 |只看该作者
在程序中加个
while(1)
{sleep(5);}
试试

论坛徽章:
0
4 [报告]
发表于 2009-06-27 09:58 |只看该作者
WinSock初始化:WSAStartup
端口网络字节序:htons(8888);

程序中对函数的调用都没加出错判断

[ 本帖最后由 felixzxh 于 2009-6-27 10:16 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-06-27 10:01 |只看该作者
用hostent怎么才能得到本地ip地址啊 ?
struct hostent *host;
然后怎么写?

论坛徽章:
0
6 [报告]
发表于 2009-06-27 10:17 |只看该作者
原帖由 yutao132 于 2009-6-27 10:01 发表
用hostent怎么才能得到本地ip地址啊 ?
struct hostent *host;
然后怎么写?

gethostname & gethostbyname

http://zhidao.baidu.com/question/28582351.html

论坛徽章:
0
7 [报告]
发表于 2009-06-27 11:48 |只看该作者
#include <Winsock2.h>
#pragma comment(lib, "WS2_32.lib");
void main()
{
        WSAData wsadata;
        WSAStartup(MAKEWORD(2,2),&wsadata);

        int port=3333;

        int server_fp=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

        struct sockaddr_in server,client;
        server.sin_port=htons(port);
        server.sin_addr.s_addr=inet_addr("192.168.0.1");
        server.sin_family=AF_INET;

        bind(server_fp,(sockaddr*)&server,sizeof(server));

        listen(server_fp,5);
        WSACleanup();



}为什么还不能监听3333端口

论坛徽章:
0
8 [报告]
发表于 2009-06-27 11:49 |只看该作者

为什么不能监听3333端口

#include <Winsock2.h>
#pragma comment(lib, "WS2_32.lib");
void main()
{
        WSAData wsadata;
        WSAStartup(MAKEWORD(2,2),&wsadata);

        int port=3333;

        int server_fp=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

        struct sockaddr_in server,client;
        server.sin_port=htons(port);
        server.sin_addr.s_addr=inet_addr("192.168.0.1");
        server.sin_family=AF_INET;

        bind(server_fp,(sockaddr*)&server,sizeof(server));

        listen(server_fp,5);
        WSACleanup();



}

论坛徽章:
0
9 [报告]
发表于 2009-06-27 12:00 |只看该作者
server.sin_addr.s_addr=inet_addr("192.168.0.1");

IP:127.0.0.1

论坛徽章:
0
10 [报告]
发表于 2009-06-29 09:48 |只看该作者

回复 #7 yutao132 的帖子


好歹也accept一下赛
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP