初级百分问题!

时间:2022-04-20 23:18:10
各位大哥大姐:
俺是初学者,有一特菜问题咨询,望不吝赐教!
1.从那儿可以找到关于Winsock编程的详细中文资料.
2.如何使用Delphi自带的Sockt控件或直接引用Winsock.dll编写网络通信程序.
3.为什么Delphi自带的Winchat例程中每发送一次数据就会占用一个新的本地端口跟远程计算机建立一个新的连接?能不能让Sockt控件只跟远程计算机建立一次连接(也就是说只占用一个端口),并保持.或者说如何让Delphi自带的Sockt控件的client端与server端只建立一个连接来实现双工通信?

24 个解决方案

#1


1. 搜索一下遍地都是.
2. 自带的如Client/ServerSocket 或Indy系列.拖出来就可以用啊. 
3. 问这个问题表示你还没搞清一些问题: 程序设置的连接端口只是一个侦听端口,当服务端检测到有客户端连接时,系统会自动分配一个端口与客户端连接通讯, 而原来的端口继续侦听. 只要服务端与客户端连接成功(一般都是客户端主动连接服务端),就可以双向通讯(收发数据)了.

#2


UP

#3


现在改用indy了,比socket容易

#4


To:zzfly82(阿飞)
首先非常感谢
1.自然是没有搜索到可以下载否则就不用来此提问了.
2.原因应该是我没有说清楚:你只回答了如何添加到程序中,我希望了解如何具体使用诸如事件 方法 属性 等等.以及如何直接引用Winsock.dll来编写通信程序?
3.你是说服务端在A端口侦听,接收到连接请求后在B端口建立连接并通信?难道不能在A端口侦听,同时也能在A端口与客户端建立连接并通信?就象IIS等一些服务程序那样?能否给一个client端只占用1个端口双向通信的例程

再次感谢

#5


帮自己再顶一下!解决问题立马结贴!!

#6


delphi 7.0换新的控件了
  网上到处是资料。。。

#7


1.DELPHI 开发一般不用S最底层的SOCKET,用Indy
3.端口分配是自动的,你看看SERVER虽然只监听80,每发送一个HTTP,就新开了一个端口
  不可能只开一个端口的

#8


到www.delphiun.com下文档看吧,很多

#9


正如 masterjames(三月街) 所说.
3.你找台IIS服务器看看,在COMMMAND下输入:netstat -a 可以看到所有与此机连接的对话(访问网页的),系统都为它们分配了与80访问的新端口(这是网络的机制),考虑到了其它人的继连.
2.以Client/Server Socket控件为例:
  C:
   ClientSocket1.address:=ServerIP;
   ClientSocket1.RemotePost:=ServerListenPort;
   ClientSocket1.Active:=true;
  S:
   OnConnect Event:
     socket.sendtext('You have Connected!baby!');
  C: 
   SocketRead Event:
   showmessage(socket.ReceiveText);
你拖两个控件只自慢慢摸索吧.
1.略.

#10


TO masterjames(三月街) and phoenixsharp(小星星):
感谢两位高手帮忙!
但我觉得两位有些问题还是有点出入,
小弟现任某网站系统管理员兼软件开发,对于仅用作Web服务的计算机我只打开了80端口,运行正常啊.如果netstat -a 发现有远程连接到本地的非80端口我通常会非常紧张的.因为这有可能意味者有非法入侵者.呵呵.....另外小弟最近刚刚完成一个用VB写的网络服务程序.我只在一个端口侦听并与客户端通信啊,难道小弟一直以来都是错的?呵呵.....

>>>>>>>>>>>强烈呼吁有那位大哥来解答小弟的初级问题!!分不够可以再加!
另外请问为什么Delphi引用VB的MsWinsock.ocx控件会出错?

#11


up

#12


up 阅

#13


自己顶一下,哪为大虾来回答一下问题?

#14


#15


你感觉是错的,很多合法服务都有些常用端口,当然,它们不是80

#16


delphi中改为indy了,要用winsocket需要另外添加上去用indy吧

#17


晕死了,都两天了.提了这么一个初级的简单文件,竟然没有人回答到点子上?!

#18


帮自己再顶!!

#19


祝你早日找到问题的答案

#20


up

#21


唉,我得耐心等待详细答案,如果实在没人回答只好将分平分给大家了.up有分!!!!
up有分!!!!
up有分!!!!
up有分!!!!
up有分!!!!
up有分!!!!
up有分!!!!
up有分!!!!

#22


up

#23


正在学习中!!!

#24


up

#1


1. 搜索一下遍地都是.
2. 自带的如Client/ServerSocket 或Indy系列.拖出来就可以用啊. 
3. 问这个问题表示你还没搞清一些问题: 程序设置的连接端口只是一个侦听端口,当服务端检测到有客户端连接时,系统会自动分配一个端口与客户端连接通讯, 而原来的端口继续侦听. 只要服务端与客户端连接成功(一般都是客户端主动连接服务端),就可以双向通讯(收发数据)了.

#2


UP

#3


现在改用indy了,比socket容易

#4


To:zzfly82(阿飞)
首先非常感谢
1.自然是没有搜索到可以下载否则就不用来此提问了.
2.原因应该是我没有说清楚:你只回答了如何添加到程序中,我希望了解如何具体使用诸如事件 方法 属性 等等.以及如何直接引用Winsock.dll来编写通信程序?
3.你是说服务端在A端口侦听,接收到连接请求后在B端口建立连接并通信?难道不能在A端口侦听,同时也能在A端口与客户端建立连接并通信?就象IIS等一些服务程序那样?能否给一个client端只占用1个端口双向通信的例程

再次感谢

#5


帮自己再顶一下!解决问题立马结贴!!

#6


delphi 7.0换新的控件了
  网上到处是资料。。。

#7


1.DELPHI 开发一般不用S最底层的SOCKET,用Indy
3.端口分配是自动的,你看看SERVER虽然只监听80,每发送一个HTTP,就新开了一个端口
  不可能只开一个端口的

#8


到www.delphiun.com下文档看吧,很多

#9


正如 masterjames(三月街) 所说.
3.你找台IIS服务器看看,在COMMMAND下输入:netstat -a 可以看到所有与此机连接的对话(访问网页的),系统都为它们分配了与80访问的新端口(这是网络的机制),考虑到了其它人的继连.
2.以Client/Server Socket控件为例:
  C:
   ClientSocket1.address:=ServerIP;
   ClientSocket1.RemotePost:=ServerListenPort;
   ClientSocket1.Active:=true;
  S:
   OnConnect Event:
     socket.sendtext('You have Connected!baby!');
  C: 
   SocketRead Event:
   showmessage(socket.ReceiveText);
你拖两个控件只自慢慢摸索吧.
1.略.

#10


TO masterjames(三月街) and phoenixsharp(小星星):
感谢两位高手帮忙!
但我觉得两位有些问题还是有点出入,
小弟现任某网站系统管理员兼软件开发,对于仅用作Web服务的计算机我只打开了80端口,运行正常啊.如果netstat -a 发现有远程连接到本地的非80端口我通常会非常紧张的.因为这有可能意味者有非法入侵者.呵呵.....另外小弟最近刚刚完成一个用VB写的网络服务程序.我只在一个端口侦听并与客户端通信啊,难道小弟一直以来都是错的?呵呵.....

>>>>>>>>>>>强烈呼吁有那位大哥来解答小弟的初级问题!!分不够可以再加!
另外请问为什么Delphi引用VB的MsWinsock.ocx控件会出错?

#11


up

#12


up 阅

#13


自己顶一下,哪为大虾来回答一下问题?

#14


#15


你感觉是错的,很多合法服务都有些常用端口,当然,它们不是80

#16


delphi中改为indy了,要用winsocket需要另外添加上去用indy吧

#17


晕死了,都两天了.提了这么一个初级的简单文件,竟然没有人回答到点子上?!

#18


帮自己再顶!!

#19


祝你早日找到问题的答案

#20


up

#21


唉,我得耐心等待详细答案,如果实在没人回答只好将分平分给大家了.up有分!!!!
up有分!!!!
up有分!!!!
up有分!!!!
up有分!!!!
up有分!!!!
up有分!!!!
up有分!!!!

#22


up

#23


正在学习中!!!

#24


up