MUD游戏编程 创建TCP监听套接字

创建TCP监听套接字

1、创建套接字

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

第一个参数是地址族(Address Family)。

第二个参数是套接字类型。SOCK_STREAM表示TCP套接字。UDP使用SOCK_DGRAM。

第三个参数是协议。SOCK_STREAM流行协议是IPPROTO_TCP。SOCK_DGRAM协议是IPPROTO_UDP和IPPROTO_ICMP。

如果函数执行失败返回-1,执行成功则返回套接字描述符。

 

2、绑定套接字

接下来将套接字绑定到一个端口号。

函数定义:

int bind( int socket, struct sockaddr *name, int namelen );

第一个参数是socket函数创建的套接字描述符。

第二个参数是sockaddr结构,描述了有关套接字所有类型的特性,其中最重要的是端口号。

第三个参数是sockaddr结构的大小。

 

新的sockaddr结构定义如下:

struct sockaddr_in {

    unsigned short  sin_family;

    unsigned short  sin_port;

    struct in_addr  sin_addr;

    char            sin_zero[8];

};

第一个参数是套接字正在使用的地址族,它几乎总是AF_INET。

第二个参数是将要打开的端口号。

第三个参数是IP地址。端口和地址都应该遵循网络字节顺序。

第四个参数知识为了将结构填充到16字节。

对sockaddr_in结构体进行填充:

struct sockaddr_in socketaddress;                     // create struct

socketaddress.sin_family = AF_INET;                   // set it for Internet

socketaddress.sin_port = htons( 1000 );               // use port 1000

socketaddress.sin_addr.s_addr = htonl( INADDR_ANY );  // bind to any address

memset( &(socketaddress.sin_zero), 0, 8 );            // clear padding

 

Socket API为我们提供了一个函数,可以很方便地将字符串格式的IP地址转换为遵循网络字节顺序整数。

socketaddress.sin_addr.s_addr =inet_addr("127.0.0.1" );

 

最后将地址与地址结构绑定起来,因此输入下面的代码:

bind( sock, (structsockaddr*)&socketaddress, sizeof(struct sockaddr));

 

3、监听

int listen( int socket, int backlog );

backlog参数是告诉套接字队列中的连接数达到多少时就开始拒绝这些连接。

下面是调用的一个实例:

listen( sock, 16 );

 

4、接受连接

函数原型:

int accept( int socket, struct sockaddr *addr, socklen_t *addrlen );

sockaddr结构体由函数来填充,表明是谁正在与我们连接。

addrlen指针包含addr结构的长度。

下面给出如何接受这一函数:

int datasock;

struct sockaddr_in socketaddress;

socklen_t sa_size = sizeof( struct sockaddr_in );

datasock = accept( sock, &socketaddress, &sa_size );


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MUD游戏编程是一种基于文本的多人在线游戏开发技术。MUD代表多用户的地下城,这种游戏的目标是模拟一个虚拟世界,玩家可以在其中扮演角色,与其他玩家互动。在MUD游戏编程中,有两种常见的版本,即PDF完整版和光盘完整版。 PDF完整版是指一本电子书或教程,以PDF格式提供,包含了编程MUD游戏所需的全部信息。这种版本通常包括游戏概念、编程原理和代码示例。PDF完整版提供了详细的指导,从基础知识到高级概念,帮助开发者了解如何设计和实现一个MUD游戏。 光盘完整版是另一种形式,其中包含了MUD游戏编程的全部资源和工具。这种版本通常是一个可执行文件,包括了游戏引擎、图形界面和其他必要的组件。光盘完整版除了提供编程教程外,还可以让开发者直接使用已经搭建好的开发环境,加快开发进程。 无论是PDF完整版还是光盘完整版,MUD游戏编程对开发者来说都是有挑战性的。它需要开发者熟悉编程语言、网络通信和游戏设计。开发者需要了解如何创建角色、事件和NPC,以及如何处理玩家之间的交互。同时,安全性也是一个重要的考虑因素,以保护游戏不受恶意攻击。 总的来说,MUD游戏编程是一个有趣而具有挑战性的领域。PDF完整版和光盘完整版都可以帮助开发者学习和实践这项技术。只要投入足够的时间和努力,开发者可以创建出令人兴奋的虚拟世界,给玩家带来独特的游戏体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值