CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

不用Winsock实现程序与单机程序之间的信息通信?

楼主cgzwwy(王伟晔)2003-01-10 23:31:55 在 VB / 基础类 提问

不用Winsock实现程序与单机程序之间的信息通信?  
  要即使的  
  最好也要说一下跨工程的调用!  
  请说出详细做法! 问题点数:60、回复次数:6Top

1 楼qqqdong()回复于 2003-01-10 23:36:22 得分 30

一个简单的点对点聊天程序  
  VERSION   5.00  
  Object   =   "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0";   "MSWINSCK.OCX"  
  Begin   VB.Form   Form1    
        Caption                   =       "点对点通讯"  
        ClientHeight         =       6330  
        ClientLeft             =       60  
        ClientTop               =       345  
        ClientWidth           =       6855  
        Icon                         =       "Form1.frx":0000  
        LinkTopic               =       "Form1"  
        ScaleHeight           =       6330  
        ScaleWidth             =       6855  
        StartUpPosition   =       2     'CenterScreen  
        Begin   VB.ListBox   lstTo    
              BeginProperty   Font    
                    Name                         =       "MS   Sans   Serif"  
                    Size                         =       12  
                    Charset                   =       0  
                    Weight                     =       400  
                    Underline               =       0       'False  
                    Italic                     =       0       'False  
                    Strikethrough       =       0       'False  
              EndProperty  
              Height                     =       2460  
              ItemData                 =       "Form1.frx":030A  
              Left                         =       90  
              List                         =       "Form1.frx":030C  
              TabIndex                 =       5  
              TabStop                   =       0       'False  
              Top                           =       3225  
              Width                       =       6675  
        End  
        Begin   MSWinsockLib.Winsock   Winsock1    
              Left                         =       6345  
              Top                           =       2790  
              _ExtentX                 =       741  
              _ExtentY                 =       741  
              _Version                 =       393216  
        End  
        Begin   VB.CommandButton   cmdConnect    
              Caption                   =       "连接"  
              Height                     =       495  
              Left                         =       4725  
              TabIndex                 =       4  
              TabStop                   =       0       'False  
              Top                           =       2655  
              Width                       =       1215  
        End  
        Begin   VB.TextBox   txtIP    
              Height                     =       300  
              Left                         =       1500  
              TabIndex                 =       3  
              TabStop                   =       0       'False  
              Text                         =       "192.168.1.68"  
              Top                           =       2760  
              Visible                   =       0       'False  
              Width                       =       2745  
        End  
        Begin   VB.CheckBox   chkServer    
              Caption                   =       "服务器"  
              Height                     =       330  
              Left                         =       120  
              TabIndex                 =       2  
              TabStop                   =       0       'False  
              Top                           =       2745  
              Visible                   =       0       'False  
              Width                       =       1215  
        End  
        Begin   VB.TextBox   txtMemo    
              BeginProperty   Font    
                    Name                         =       "MS   Sans   Serif"  
                    Size                         =       12  
                    Charset                   =       0  
                    Weight                     =       400  
                    Underline               =       0       'False  
                    Italic                     =       0       'False  
                    Strikethrough       =       0       'False  
              EndProperty  
              Height                     =       360  
              Left                         =       75  
              TabIndex                 =       1  
              Top                           =       5805  
              Width                       =       6675  
        End  
        Begin   VB.ListBox   lstFrom    
              BeginProperty   Font    
                    Name                         =       "MS   Sans   Serif"  
                    Size                         =       12  
                    Charset                   =       0  
                    Weight                     =       400  
                    Underline               =       0       'False  
                    Italic                     =       0       'False  
                    Strikethrough       =       0       'False  
              EndProperty  
              Height                     =       2460  
              ItemData                 =       "Form1.frx":030E  
              Left                         =       120  
              List                         =       "Form1.frx":0310  
              TabIndex                 =       0  
              TabStop                   =       0       'False  
              Top                           =       150  
              Width                       =       6615  
        End  
  End  
  Attribute   VB_Name   =   "Form1"  
  Attribute   VB_GlobalNameSpace   =   False  
  Attribute   VB_Creatable   =   False  
  Attribute   VB_PredeclaredId   =   True  
  Attribute   VB_Exposed   =   False  
  Option   Explicit  
   
  Private   Sub   chkServer_Click()  
      If   Me.chkServer.Value   Then  
          If   Me.Winsock1.State   <>   sckClosed   Then   Me.Winsock1.Close  
          Me.Winsock1.LocalPort   =   4001  
          Me.Winsock1.Listen  
      End   If  
  End   Sub  
   
  Private   Sub   cmdConnect_Click()  
      If   Me.Winsock1.State   <>   sckClosed   Then   Me.Winsock1.Close  
      Me.Winsock1.RemoteHost   =   txtIP.Text  
      Me.Winsock1.RemotePort   =   4001  
      Me.Winsock1.Connect  
      Call   AddTo("呼叫")  
  End   Sub  
   
  Private   Sub   Form_Load()  
      Call   chkServer_Click  
  End   Sub  
   
  Public   Sub   AddTo(ByVal   pstrTemp   As   String)  
      lstTo.AddItem   (pstrTemp)  
      lstTo.ListIndex   =   lstTo.ListCount   -   1  
      DoEvents  
      Me.txtMemo.SetFocus  
  End   Sub  
   
  Public   Sub   AddFrom(ByVal   pstrTemp   As   String)  
      lstFrom.AddItem   (pstrTemp)  
      lstFrom.ListIndex   =   lstFrom.ListCount   -   1  
      DoEvents  
      Me.txtMemo.SetFocus  
  End   Sub  
   
  Private   Sub   lstFrom_DblClick()  
      Me.lstFrom.Clear  
      Me.txtMemo.SetFocus  
  End   Sub  
   
  Private   Sub   lstTo_DblClick()  
      Me.lstTo.Clear  
      Me.txtMemo.SetFocus  
  End   Sub  
   
  Private   Sub   txtMemo_KeyDown(KeyCode   As   Integer,   Shift   As   Integer)  
      If   KeyCode   =   13   Then  
          If   UCase(Me.txtMemo.Text)   =   "/SHOW"   Then  
              Me.chkServer.Visible   =   True  
              Me.txtIP.Visible   =   True  
              Me.txtMemo.Text   =   ""  
              Exit   Sub  
          End   If  
          If   Len(Trim(Me.txtMemo.Text))   >   0   Then  
              Call   SendInfo(Me.txtMemo.Text)  
              If   Left(Trim(Me.txtMemo.Text),   1)   <>   "/"   Then  
                  Call   AddTo(Me.txtMemo.Text)  
              End   If  
              Me.txtMemo.Text   =   ""  
          End   If  
      End   If  
  End   Sub  
   
  Private   Sub   Winsock1_Close()  
      Call   chkServer_Click  
      MsgBox   "对方退出"  
  End   Sub  
   
  Private   Sub   Winsock1_Connect()  
      Call   AddFrom("连接成功")  
  End   Sub  
   
  Private   Sub   Winsock1_ConnectionRequest(ByVal   requestID   As   Long)  
      With   Me.Winsock1  
          If   .State   <>   sckClosed   Then   .Close  
          .Accept   (requestID)  
          DoEvents  
          'Call   SendInfo("连接成功")  
          Call   AddFrom("连接成功")  
      End   With  
  End   Sub  
   
  Private   Sub   Winsock1_DataArrival(ByVal   bytesTotal   As   Long)  
      Dim   strTemp   As   String  
       
      With   Me.Winsock1  
          .GetData   strTemp  
          Select   Case   UCase(Left(strTemp,   2))  
              Case   "/T"  
                  Me.Caption   =   Right(strTemp,   Len(strTemp)   -   2)  
              Case   Else  
                  Call   AddFrom(strTemp)  
          End   Select  
      End   With  
  End   Sub  
   
  Public   Sub   SendInfo(ByVal   pstr   As   String)  
      On   Error   Resume   Next  
      Me.Winsock1.SendData   pstr  
  End   Sub  
   
  Top

2 楼_131_(\*咕咚*/)回复于 2003-01-10 23:42:00 得分 0

楼主都说了,不用socket的!  
  这个问题很奇怪,我也想知道怎么实现!  
   
  楼主能说明一下为什么不能socket吗?Top

3 楼programart_life(理论派)回复于 2003-01-10 23:51:08 得分 10

不用套接?你自己写通讯协议?将国际通用的七层网络结构废弃,而采用你自己的结构?呵呵,哈哈,有趣。建议你到微软或者IBM、SUM之类的大公司去从事底层开发吧!~哈哈哈哈Top

4 楼interdog(二狗子)回复于 2003-01-10 23:54:27 得分 20

用写文件的方式来实现,各个应用程序之间的通讯,freebsd里面有用到这种方式,Top

5 楼cgzwwy(王伟晔)回复于 2003-01-28 18:28:48 得分 0

qqqdong的程序写得很长,非常感谢!  
  可是误解了我的意思,我要的不是点对点的通信,而是工程与工程之间的通信!interdog的方法是正确的,可是在即时性方面比较难完美。  
  其实,我想说的就是类似于程序监控器的程序。  
  例如,把工程1中的计算结果,自动在工程2中的文本框中显示出来。  
  经过了那么长的日子,时间关系,我的程序还是选用了WINSOCK。  
  无论怎么样,谢谢各位的帖子。Top

相关问题

  • WINSOCK程序网络通信
  • 怎么用winsock?编写通信程序?
  • 如何用PB6编写WINSOCK点对点通信程序?
  • 在单机上调试WINSOCK网络程序也不好使呀,该怎么办??谢谢!!!
  • 用WINSOCK作了一个CS聊天程序只能在单机下通讯,请问这是怎么回事
  • 用单机可否开发S/c程序?
  • WINDOWS下用WINSOCK写的程序是否能与LINUX下API编写的程序正确通信?
  • 用winsock做了个C/S的通信程序,但是有些很怪的问题
  • 程序间的通信
  • caiyi9000(只懂Winsock) : 我找不到你发表的《Winsock开发网络通信程序经典入门》 在哪里?

关键词

  • winsock
  • me
  • 通信
  • 通讯
  • 连接
  • vb
  • txtmemo
  • lstto
  • lstfrom
  • 程序

得分解答快速导航

  • 帖主:cgzwwy
  • qqqdong
  • programart_life
  • interdog

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo