社区
网络编程
帖子详情
Socket多端口侦听,不能用两个线程侦听两个端口吗?
fohoo
2003-08-19 06:22:05
在应用中,服务端要同时侦听两个端口,我想用一个线程侦听一个端口。
分开只开一个侦听时正常,但开两个时,后一个线程初始化socket时会导致程序退出
是不是socket库是线程不安全的?
如何可以做到同时侦听两个端口,用多进程??
我是在LINUX下写,不过WINDOWS也该差不多吧,我有点晕了..
...全文
234
10
打赏
收藏
Socket多端口侦听,不能用两个线程侦听两个端口吗?
在应用中,服务端要同时侦听两个端口,我想用一个线程侦听一个端口。 分开只开一个侦听时正常,但开两个时,后一个线程初始化socket时会导致程序退出 是不是socket库是线程不安全的? 如何可以做到同时侦听两个端口,用多进程?? 我是在LINUX下写,不过WINDOWS也该差不多吧,我有点晕了..
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
awant2k
2003-08-21
打赏
举报
回复
m_pSvrSock1 = new CMyServerSocket(this);
if (m_pSvrSock1->Create(SOCKET_PORT_1,SOCK_STREAM))
{
TRACE("m_pSvrSock1 创建成功\n");
if(m_pSvrSock1->Listen())
{
TRACE("m_pSvrSock1 开始侦听....\n");
}
}
m_pSvrSock2 = new CMyServerSocket(this);
if (m_pSvrSock2->Create(SOCKET_PORT_2,SOCK_STREAM))
{
TRACE("m_pSvrSock2 创建成功\n");
if(m_pSvrSock2->Listen())
{
TRACE("m_pSvrSock2 开始侦听...\n");
}
}
fang_jb
2003-08-21
打赏
举报
回复
同一个进程里申请两个socket是肯定可行的,你的问题一定不在这里
男人三十好累
2003-08-21
打赏
举报
回复
可以的,一定是你的代码线程不安全
fohoo
2003-08-20
打赏
举报
回复
up
fohoo
2003-08-20
打赏
举报
回复
问题没有解决,急啊
现在是不能在一个进程里调socket两次,因为我想侦听两个端口
int testFD = socket(AF_INET, SOCK_STREAM, 0);
int listenFD = socket(AF_INET, SOCK_STREAM, 0); //这里会导致程序退出, 不行啊
用linux, g++
ifromheaven
2003-08-20
打赏
举报
回复
问题不在SOCKET,侦听多个端口是完全可以的.
zerphy
2003-08-19
打赏
举报
回复
可以!
smch
2003-08-19
打赏
举报
回复
用raw socket
flashboy
2003-08-19
打赏
举报
回复
绝对可以的,不过你如果使用MFC的SOCKET类的时候就要特别注意了。
不过我们一般网络多线程用的SOCKET都是用自己封状好了的类,这样比较安全
孤必有邻
2003-08-19
打赏
举报
回复
按侦听第一个端口的方式侦听第二个端口,不应该有问题。
一定是代码中有个小小的错误,仔细看看。
单
线程
实现同时监听多个
端口
(windows平台c++代码)
单
线程
实现同时监听多个
端口
(windows平台c++代码)。文章查看https://www.cnblogs.com/yuanchenhui/p/icop_accept.html
同步
SOCKET
多
线程
通信例子
自己刚刚弄
SOCKET
,网上的很多资源都是FORM的。我自己做了一个命令台的,服务器端长时间
侦听
端口
,当一个客户端连上后,就起一个
线程
来接受数据,并发送信息。客户端可以接受服务器发回的信息。并且可以多个客户端同时与服务器联系。希望可以对大家有帮助。刚学习,很多注释都没弄掉,别介意。
socket
proxy:一个简单的 Java 多
线程
Socket
代理服务器。 它
侦听
传入的连接并将任何通信转发到服务器,同时记录整个对话
套接字代理 一个简单的 Java 多
线程
Socket
代理服务器。 它
侦听
传入的连接并将任何通信转发到服务器,同时记录整个对话。 套接字代理服务器 这是库的主类。 它可以由第三方实例化,并提供本地
端口
和服务器的远程主机/
端口
以将请求重定向到。 套接字监听器 可以向
Socket
ProxyServer 添加一个监听器(目前是一个)来监听通信。 仅在会话结束时提供通信。
Socket
Listener 是使用该库的程序需要实现的接口。 因此,它需要注册为
Socket
ProxyServer 实例的
侦听
器。 命令行 如果你想运行/测试它,你可以运行 Main.class。 启动参数是: 监听的
端口
号 服务器主机将请求重定向到 将请求重定向到的
端口
号 例如: java -cp
socket
proxy-1.0.jar com.tools.
socket
proxy.Main 9090 www.go
PortScanner:C#实现多
线程
端口
扫描器V1.0
##PortScanner项目(C#实现多
线程
端口
扫描器)说明 ###1. 概述 文件结构 ####1.1 课程设计目的 加深TCP/IP协议的理解,掌握TCP四次握手机制,同时熟悉
socket
编程。 ####1.2 课程设计内容 实现一个
端口
扫描器: 支持多进程/
线程
; 能对单个指定主机进行扫描或扫描指定网段内的主机; 能扫描特定的部分
端口
或对指定的
端口
段内的
端口
进行逐个扫描; 能够显示所开放
端口
的服务名称; ###1.3 运行环境 Windows xp、Windows 7、Windows8,Visual Studio2013 ###2. 系统分析与设计 ####2.1 原理概述
端口
扫描有好几种,但其中TCP connect扫描是最基本的扫描,我们可以利用系统提供的connect()用来与每一个目标计算机的
端口
进行连接。如果
端口
处于
侦听
状态,那connect()就能成功。否则,这个
端口
Socket
简单通讯
Socket
简单通讯 //声明将要用到的类 private IPEndPoint ServerInfo;//存放服务器的IP和
端口
信息 private
Socket
Server
Socket
;//服务端运行的
SOCKET
private Thread ServerThread;//服务端运行的
线程
private
Socket
[] Client
Socket
;//为客户端建立的
SOCKET
连接 private int ClientNumb;//存放客户端数量 private byte[] MsgBuffer;//存放消息数据 private void CmdStar_Click(object sender, EventArgs e) { Server
Socket
= new
Socket
(AddressFamily.InterNetwork,
Socket
Type.Stream, ProtocolType.Tcp); //提供一个 IP 地址,指示服务器应
侦听
所有网络接口上的客户端活动 IPAddress ip = IPAddress.Any; ServerInfo = new IPEndPoint(ip, this.GetPort()); Server
Socket
.Bind(ServerInfo);//将
SOCKET
接口和IP
端口
绑定 Server
Socket
.Listen(10);//开始监听,并且挂起数为10 Client
Socket
= new
Socket
[65535];//为客户端提供连接个数 MsgBuffer = new byte[65535];//消息数据大小 ClientNumb = 0;//数量从0开始统计 ServerThread = new Thread(new ThreadStart(RecieveAccept));//将接受客户端连接的方法委托给
线程
ServerThread.Start();//
线程
开始运行 CheckForIllegalCrossThreadCalls = false;//不捕获对错误
线程
的调用 this.CmdStar.Enabled = false; this.CmdStop.Enabled = true; this.StateMsg.Text = "服务正在运行..." + " 运行
端口
:" + this.GetPort().ToString(); this.ClientList.Items.Add("服务于 " + DateTime.Now.ToString() + " 开始运行."); }
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章