LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1053|回复: 5

希望高手讨论一下:关于网路编程

[复制链接]
发表于 2007-7-31 18:26:12 | 显示全部楼层 |阅读模式
linux下的c编程,服务器是个并发服务器,要求客户端发送字符给服务器,服务器也要实现该功能,要求发送的字符=接受的字符,功能也不难实现,任意客户端可以向服务器发送,问题是服务器能不能指定客户端进行发送,比如说想给客户端A发,不给客户端B发,这个问题怎么解决啊,希望高手讨论一下~~~~
发表于 2007-7-31 21:11:57 | 显示全部楼层
哪个客户提出请求就会响应哪个客户,怎么来的这个问题?我开始学,看到例子好像不会出现这样的结果,每有一个新的连接进来就会创建一个新的临时套接口,并在会话结束时关闭,怎么会同时向不同客户端发送同样的信息呢?
回复 支持 反对

使用道具 举报

发表于 2007-7-31 22:48:01 | 显示全部楼层
我是菜鸟,这个问题不知道可不可以这样:
首先accept指定第二、第三个参数,得到客户端信息,然后用inet_ntop得到客户端IP地址,然后与自己想要通信的客户端IP进行比较,如果是想要通信的客户端,则继续进行进一步的操作,如果不是则关闭连接套接口,随便打印一条提示信息之类的。
回复 支持 反对

使用道具 举报

发表于 2007-8-2 10:30:14 | 显示全部楼层
Post by ratcj
我是菜鸟,这个问题不知道可不可以这样:
首先accept指定第二、第三个参数,得到客户端信息,然后用inet_ntop得到客户端IP地址,然后与自己想要通信的客户端IP进行比较,如果是想要通信的客户端,则继续进行进一步的操作,如果不是则关闭连接套接口,随便打印一条提示信息之类的。


可行吧,要不客户机也弄个服务进程
回复 支持 反对

使用道具 举报

发表于 2007-8-3 01:07:20 | 显示全部楼层
服务器通过accept接受任何客户端的连接然后创建一个子进程来单独同客户端进行会话,在该子进程中可以调用getpeername来获得客户端ip地址、端口,然后根据该客户端ip地址来判断是否应终止子进程执行。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-4 14:46:41 | 显示全部楼层
我觉得bantouxiaoxue2 说得有道理~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表