您好,请问如何将 Socket 放在 Dll中 ? 谢谢(50分)

  • 主题发起人 主题发起人 LikeDFW
  • 开始时间 开始时间
L

LikeDFW

Unregistered / Unconfirmed
GUEST, unregistred user!
您好,我想实现如下功能 :
客户端和服务端使用各自的 Dll ,将通信全部写在这个 Dll 中,分别在 客户端
和服务端调用各自的 Dll ;

我想数据发送只要将数据传入 Dll 就应该可以, 但 Dll中如何接收对方的数据
接收后又如何发送给客户端/服务端程序 ?

对 Dll 不熟望您指导 ,谢谢
 
哈哈,这样不行吧,要么用COM
 
用 COM ?

能讲讲么 ?
 
是不是多线程的问题导致的?
 
用你的dll加个Form就行了
 
怎么会。加什么Form。
其实WinSock本身就在dll中。加再一个dll除非有特别的理由。这些理由可以是:
1.我只需要WinSock的一部分功能,用dll封装可以使宿主程序更简约地与WinSock交换。
2.我需要对Socket数据包进行重新拆分、组装或者过滤,然后发给宿主程序。
给你一个方案:
1.定义一个结构,包括访问数据块的长度和地址。不妨用接口。
2.dll中一定要有线程的,你想:你必须在线程中才能定义线程化的消息循环。在线程中
你捕获WinSock事件,然后通过某种方式通知宿主程序。
3.某种方式?什么方式?第一种方式是通过消息发送给宿主程序。你需要至少自定义三个
消息类型,一个通知WinSock事件,例如连接或断开;一个是数据包;还有一个是异常。
第二种方式当然是回调。回调也是以上三种:事件、数据、异常。
4.你的dll中必须有设置初始参数的过程输出,例如远程主机、端口。

必须明白,dll中申请的内存必须在dll中释放,你需要在dll中管理好内存,防止泄漏,你
总不能通过回调向宿主程序申请内存吧。
 
我试试,先谢谢您
 
后退
顶部