牛人看过来(200分)

  • 主题发起人 主题发起人 waterflow
  • 开始时间 开始时间
W

waterflow

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在像编一个程序,想通过基于tcp/ip、ipx/spx和其他的软件通信
决定用serversocket和clientsocket来实现,不知道能否满足这种要求?(对方软件有
vc编的,有delphi编的),不知道这中方式是否可行,若不行,请提供指导
我想使用stThreadBlocking的servicetype来进行socket编程,但是由于联机文档中没有
比较现成的例子可用,而且以前从来没有用过socket编程,所以希望牛人能指点以二,
最好能有一个简单的代码
 
可以再加上udp协议,DUP的速度快,但安全性低,和SOCKET联合起来,最合适了。
可用SOCKET通信,用UDP传送大文本。给分后,我发一个例子给你
 
To Super Power:
你的例子是否是采用多线程方式?只要你给我代码,分肯定不低于100分,你先给我代码
如何,这样有问题我还可以请教。
waterflow@263.net
 
socket通信是很方便,不但不用管对方是用什么开发的,还不用管对方是什么操作系统。
最近由于我们的项目就需要进行跨平台的Socket通信。由于我是从Unix下开始学的,对于
VCL的Socket编程还要整理一下(针对你说的stThreadBlocking),随后交给你。
 
to sachow
wait your good news
3x
 
顺便问一下,delphi中发送信息有sendtext,senstream,sendbuf
接受的有receivebuf,receivetext
由于不知道对方软件(delphi、vc编的)的具体实现,只是知道对方软件为socket通信提供的ip、端口号,应此
此处往对方发送采用哪个函数、接受采用哪个函数?
 
由于可能要和多个对方软件通信,我想serversocket的servertype应该是线程型
此时就将导致数据访问的问题,由于每一个线程都会接受数据,并将数据写入一个
地方(我想使用链表),此时就有数据访问的互斥要求,有一个线程访问链表时其他的
线程或别的函数就不能访问,此时用临界区来是线还是别的方法?

希望各位牛人能够指点一二
 
越看delphi的文档我越模糊:
我的程序应该是接收外部程序发来的数据,进行处理,再发送出去。现在有几个问题比较
难受。1: 可能有多个外部程序同时向本serversocket发送数据 2:一个外部程序和本
serversocket的连结可能连续发送数据,其时间间隔有可能小于serversocket处理接收信息
的时间 [red]要求对所有的外来信息不能因为本程序的与原因而导致信息丢失 [/red]
如果serversocket的servertype为线程的,能否满足第二个要求
如果serversocket的servertype为非阻塞的,能否满足要求
请牛人指点一下:
 
小菜!!!!

要注意传过来的东东是什么样的。
 
在UNIX下面采用的类似ThreadBlock方式的做法是:服务器端监听,当接受到客户端连接请求时
就派生(fork)出一个子进程来与客户端进行连接,原来服务器端的父进程继续进行监听,这样
就不会出现服务器端不能接受多个客户端的访问请求的问题。我看Delphi的帮助时,帮助上说道
当TServerSocket的SetverType设成stThreadBlock时,它会自动建立一个线程来与客户端进程
连接(与我前面说的UNIX的做法相似),所以,应该不会出现某个客户端在连续发送数据时服务
器端不能响应的问题,就是你说的第2个问题。我现在正在看VCL源码,看它是怎样自动建立线程
及怎样工作的。
 
在我们的项目中,我们都采用TCP协议,因为TCP协议是面向连接的,安全的,不需要人自动
去编码做数据包的完整性校验。而UDP(数据报套接字)是潜在不可靠的,数据可能会丢失,
需要人为加入对数据包的完整性校验。我们采们TCP协议的另一个原因是我们的系统中没有
很多的客户端连接需求,所以服务器端的负荷不是很大,而如果你的服务器端会有太多的
客户端连接需求(例如成百上千时,根据你的服务器而定),就得考虑用UDP了。
 
我试验了一下:
在stThreadBlock服务模式下,onclientconnect事件一直不发生,估计是给
产生的线程屏蔽掉了
 
调试程序真烦,一个界面的修改导致程序运行异常,哎,一个上午答进去了
问题我自己基本上解决了

谢谢各位的高见,过一段时间我要将分分给各位
 
to super power
能给我一份吗?
honglueyihzg@sina.com
 
多人接受答案了。
 
后退
顶部