首页
博客
专栏课程
下载
问答
社区
会员中心
论坛
代码
直播
Chrome 插件
能力认证
导航
全部
C#综合技术
C#互联网桌面应用
AppLauncher
WinForm&WPF
C#开发新技术
博文收录
Ada助手
问答
...
C#综合技术
C#互联网桌面应用
AppLauncher
WinForm&WPF
C#开发新技术
博文收录
Ada助手
问答
登录/注册
社区
C#
帖子详情
client和server怎样在一个程序里同时运行
youunknow
2011-03-04 10:11:24
各位好:
我在一个程序里声明了两个socket分别是client和server。
我希望通过client给server发ping包,类似于ping127.0.0.1的效果,但是sever总是控制不好,或者是拥塞模式搞的界面刷不出来,或者是显示不能立即完成一个非阻挡性套接字操作,我也试过使用beginaccept的方法,但同样不好使,求各位给帮帮忙。小弟这里散分了,谢谢。
...全文
给本帖投票
914
17
打赏
收藏
client和server怎样在一个程序里同时运行
各位好: 我在一个程序里声明了两个socket分别是client和server。 我希望通过client给server发ping包,类似于ping127.0.0.1的效果,但是sever总是控制不好,或者是拥塞模式搞的界面刷不出来,或者是显示不能立即完成一个非阻挡性套接字操作,我也试过使用beginaccept的方法,但同样不好使,求各位给帮帮忙。小弟这里散分了,谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
发表回复
按下Enter换行,Ctrl+Enter发表内容
编辑
预览
轻敲空格完成输入
显示为
卡片
标题
链接
打赏红包
qldsrx
2011-03-04
打赏
举报
回复
自己连自己当然可以了,Socket对象本身就无所谓客户端或者服务端,开着监听的那个Socket对象就是服务端,主动去连的那个Socket对象就是客户端,你创建两个这样的Socket对象不就好啦(必须使用多线程)
youunknow
2011-03-04
打赏
举报
回复
一个程序不能同时开severSocket和ClientSocket吗?
zzmsyt
2011-03-04
打赏
举报
回复
向楼主致敬!
IE11下面经常卡到爆
2011-03-04
打赏
举报
回复
[Quote=引用 4 楼 youunknow 的回复:]
就是想实现自己ping自己啊。写在一个程序里不行吗?
[/Quote]
自己ping自己不关Client/Server什么事吧
youunknow
2011-03-04
打赏
举报
回复
就是想实现自己ping自己啊。写在一个程序里不行吗?
flyerwing
2011-03-04
打赏
举报
回复
[Quote=引用 1 楼 sp1234 的回复:]
没有东西可抄。
再深入一点原理,从头学学吧。
[/Quote]
如果运行到一块有什么用呀?
不就是通讯了吗.肯定得分开才能通讯.
youunknow
2011-03-04
打赏
举报
回复
谢谢各位帮帮忙吧。呵呵。
以专业开发人员为伍
2011-03-04
打赏
举报
回复
没有东西可抄。
再深入一点原理,从头学学吧。
qldsrx
2011-03-04
打赏
举报
回复
[Quote=引用 13 楼 youunknow 的回复:]
我想同时可以监听10个链接,可以都在这个端口上吗?呵呵。不懂。请指教
[/Quote]
监听是只能监听一个本机的IP+端口号,至于多少个链接进来访问,这和监听方无关,哪怕1000个链接都可以,但是访问时得用你监听方监听的那个端口号来Connect
xonln
2011-03-04
打赏
举报
回复
请用VS的调试功能,可以同时运行的
youunknow
2011-03-04
打赏
举报
回复
我试试看,要是不行还请多指教。呵呵
缭绕飘渺
2011-03-04
打赏
举报
回复
缺乏看书
google下例子看看
建议整两个类,一个server类,一个client类,封装好socket连接,
然后生成类对象
youunknow
2011-03-04
打赏
举报
回复
我想同时可以监听10个链接,可以都在这个端口上吗?呵呵。不懂。请指教
qldsrx
2011-03-04
打赏
举报
回复
请问你这是在监听本机什么端口?服务Socket必须是一个固定的已知端口,否则你客户Socket如何去连接?
Math.Abs((int)DateTime.Now.Ticks % 32768)
youunknow
2011-03-04
打赏
举报
回复
监听的就像这样
private void Listen()
{
try
{
while (true)
{
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress hostIP = (Dns.Resolve(IPAddress.Any.ToString())).AddressList[0];
IPEndPoint ep = new IPEndPoint(hostIP,Math.Abs((int)DateTime.Now.Ticks % 32768));
s.Bind(ep);
s.Listen(10);
s.BeginAccept(new AsyncCallback(listencallback), s);
}
}
catch(Exception ex)
{ MessageBox.Show(ex.Message); }
}
private void listencallback(IAsyncResult ar)
{
try
{
Socket Handler = Listener.EndAccept(ar);
}
catch (Exception ex)
{ MessageBox.Show(ex.Message); }
}
qldsrx
2011-03-04
打赏
举报
回复
积极拒绝说明你的服务并未打开,你贴下部分代码看下,只要连接部分(包括服务监听开启)即可,数据收发不需要。
youunknow
2011-03-04
打赏
举报
回复
我现在就是开了两个线程啊,但是如果不用异步方式的话就会拥塞,如果用异步方式的话,clinet在连接本机时会显示目标主机积极拒绝。
Microsoft SQL
Server
Native
Client
(SQL Native
Client
)
Microsoft SQL
Server
Native
Client
(SQL Native
Client
) 是
一个
同时包含 SQL OLE DB 访问接口和 SQL ODBC 驱动
程序
的动态链接库 (DLL)。它对使用本机代码 API(ODBC、OLE DB 和 ADO)连接到 Microsoft SQL
Server
7.0、2000 或 2005 的应用
程序
提供
运行
时支持。应使用 SQL Native
Client
来创建新的应用
程序
或增强需利用 SQL
Server
2005 新增功能的现有应用
程序
。SQL Native
Client
的这个可再分发安装
程序
用于安装
运行
时所需的客户端组件,以利用 SQL
Server
2005 的新增功能,它也可以安装开发使用 SQL Native
Client
API 的应用
程序
所需的头文件。 -Microsoft SQL
Server
Native
Client
(SQL Native
Client
) is a also contains the SQL OLE DB provider and SQL ODBC driver is a dynamic-link library (DLL). Its use of native code API (ODBC, OLE DB and ADO) to connect to Microsoft SQL
Server
7.0,2000 or 2005 applications to provide run-time support. SQL Native
Client
should be used to create new applications or enhance the need to use SQL
Server
2005 new features of existing applications. SQL Native
Client
This redistributable installer for the installation to run the
client
components needed to take advantage of SQL
Server
2005' s new features, it also can be installed using the SQL Native
Client
API developers of applications required for the first文件.
Win10可用的Microsoft SQL
Server
2008 Native
Client
Win10可用的Microsoft SQL
Server
2008 Native
Client
Navicat 操作数据库 会用到
socket文件传输源码
olfile readme file. [1. 文件名解释] olfile: Offload File 这个工具原本是项目中为测试TOE引擎的效率而设计的, 可以作为socket编程的
一个
例子来学习。 [2. 文件介绍]
程序
中使用socket实现了文件的传输。 在VC6.0中编译通过,目录中olfile.cpp/olfile.h是原文件,可以任意修改,不过请不要改动文件头的作者信息。 有两个目录:
server
、
client
,其实编译出来的东西是一样的,当时是为了测试方便才分出来的。 可以直接打开
client
目录中的工程来编译。 [3. 使用介绍]
程序
分
client
端和
server
端,
server
端监听,
client
端使用命令行方式发送或接收文件。 在VC6.0中编译生成olfile.exe,使用不同的选项启动
client
和
server
。 比如,我们有两台机器10.190.1.1(A), 10.190.1.2(B),加入都
运行
windows,想把A的c:foo.dat传到B,并放在B的c:foodst.dat, 则需要在B启动
server
: olfile -
server
A启动
client
进行传输: olfile -src c:foo.dat -dst c:foodst.dat -ip 10.190.1.2 -y -src 表示源文件的位置 -dst 表示目标文件的位置 -ip 表示远程主机的IP。 -y 表示如果远程主机上的目标文件位置原来有文件,则强制覆盖。 可以看出,可以让A当作
Server
,B当作
Client
,使用不同的命令行实现上面的文件传递: A启动
server
: olfile -
server
B启动
client
进行文件传输,这时B的c:foodst.dat是目标: olfile -dst c:foodst.dat -src c:foo.dat -ip 10.190.1.1 -y [4.兼容性] 附带的Makefile文件表明,代码可以在Linux下正常编译。所以,可以
运行
在Linux下,实现Linux与Windows文件的互传。 可能的命令行会变成: olfile -dst /home/foodst.dat -src c:foo.dat -ip 10.190.1.1 -y [5. 局限和可能存在的问题] 1.
程序
不会对你所使用的系统产生致命影响,因为它仅仅是
一个
socket 实例。 2.
server
在进行一次文件传输之后就退出,因为
程序
是单一线程的。 3.可以利用
程序
的打印输出看一下大概的传输速度(因为这时我当时在项目中写这个工具的原因)。
如何在eclipse 中
运行
两个工程
一个
Server
一个
Client
这本来是不值得写一篇博客的问题。但是,看的百度上关于这个简单问题的回答,很乱。有的回答就是答非所问。所以,在此说一下。希望咱们Java初学者少走弯路。 这个问题的答案就是: eclipse本来就可以直接
运行
两个工程。 首先,
运行
Server
; 其次,
运行
Client
,这样 两个工程就都
运行
起来了 。 最后,想看那个工程的
运行
结果就在 Display Selected Console.
基于TCP的socket编程实现
client
和
server
通信
基于TCP的socket编程实现
client
和
server
通信 . 实验内容: .
client
为单线程、
server
为多线程(群聊功能) . 原理: . 套接字(socket)是
一个
抽象层,应用
程序
可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用
程序
将I/O插入到网络中,并与网络中的其他应用
程序
进行通信。 . 环境: . Python 3.8.2、Wind...
C#
111,085
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
积分榜
荣誉榜
原力榜
学习榜
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章
手机看
关注公众号
客服
返回
顶部