有一个叫做FICQ的可以在局域网内聊,当然有想法也可以自己做,VC吧,VC好一些

解决方案 »

  1.   

    很简单用vb中的winsock对象就可以,如果你想省事而且系统是win2000以上的就用shell("c:\windows目录\system32\net send ip地址 发送信息)就行了
      

  2.   

    省事的方法,用winsock的UDP连接加两个Text,一个Button,一个Winsock,Winsock的Protocol属性设为 1Private Sub Form_Load()
    Winsock.LocalPort=5000
    Winsock.RemoteHost="192.168.0.1"  '写对方的IP
    Winsock.RemotePort=5000
    End SubPrivate Sub Command_Click()
    Winsock.SendData Text1.Text
    End SubPrivate Sub Winsock_DataArrival(Byval bytesTotal As Long)
    Dim rec as String
    Winsock.GetData rec, vbString
    Text2.Text = rec
    End Sub做两个这样的程序,注意IP地址不一样
      

  3.   

    To:wxlcol(Collapsar.net)
    可以用net send,但是要求系统在Win2000以上,或者开winpopup
      

  4.   

    建议大家先去下载一个名为LanTalk的软件,这个软件可以在只知道对方IP或机器名的情况下发送信息,另外再去http://www.21code.com下载一些工具,跟踪程序里的API使用情况.
      

  5.   

    你实在要自己写的话我建议你去买一本《VB编程实例精解》,我记得最后一个例子是讲如何编一个可以在局域网使用的QQ,不过它也基本是通过WINSOCK实现的,不过比较完善!
      

  6.   

    我在金红恩在线,看过一个这种东西不知道能不能适合你的要求!我可不会做,只是把他记了下来!如下:
    Option Explicit
    Private IgnoreText As Boolean'----------------------各控件说明----------------------------
    '--名称-------------类型---------------作用------------------
    'frmMain            Form               CHAT主窗体
    'Winsock1           Winsock            连接控件
    'Label1             Label              CONNECT WITH IP标签
    'Label2             Label              LOCAL PORT标签
    'Label3             Label              REMOTE PORT标签
    'txtRemoteIP        TextBox            远程IP地址输入框
    'txtLocalPort       TextBox            本地PORT输入框
    'txtRemotePort      TextBox            远程PORT输入框
    'cmdConnect         CommandButton      连接CONNECT按钮
    'Label4             Label              Type your text and hit Enter to send it.标签
    'Frame1(remoteip)   Frame              REMOTE IP 框架
    'Frame2(host ip)    Frame              HOST IP 框架
    'Text1              TextBox            显示对方(远程主机)发送的CHAT内容
    'Text2              TextBox            输入己方(本地主机)要发送的CHAT内容,按ENTER键发送
    'cmdClear           CommandButton      清空输入框(TEXT2)和显示框(TEXT1)中的内容
    'StatusBar1         StatusBar          状态栏
    '-----------------------------------------------------------'当CLEAR按钮按下时,清空TEXT1和TEXT2中的内容
    Private Sub cmdClear_Click()
    Text1 = ""
    With Text2
       '清空输入框
       .Text = " "
       '并把焦点置于TEXT2
       .SetFocus
    End With
    End Sub'当CONNECT按钮按下时,进行以下操作
    Private Sub cmdConnect_Click()
    On Error GoTo ErrHandlerWith Winsock1
       '设置 RemoteHost 属性
       .RemoteHost = Trim(txtRemoteIP)
       '设置 RemotePort 属性
       'RemotePort 属性的值应该等于 远程主机上的 LocalHost 属性的值
       .RemotePort = Trim(txtRemotePort)
       'LocalPort 属性的值是不能改变的,必须检查它是否已经被设置
       '如果 LocalPort 属性为空(没有被设置),将其设为在LocalPort输入框中输入的数值
       If .LocalPort = Empty Then
          .LocalPort = Trim(txtLocalPort)
          Frame2.Caption = .LocalIP
          .Bind .LocalPort
          '待查
       End If
    End With'为了保证使用者不能改变LocalPort的值,将txtLocalPort输入框锁定
    txtLocalPort.Locked = True
    '在状态栏中显示“正在连接”的状态
    StatusBar1.Panels(1).Text = "  Connected to " & Winsock1.RemoteHost & "  "
    '如果连接正常,做以下设置
    Frame1.Enabled = True
    Frame2.Enabled = True
    Label4.Visible = True
    Text2.SetFocus
    Exit Sub
    '如果在连接过程中出现错误,则转向ErrHandler:,并显示错误提示
    ErrHandler:
    MsgBox "Winsock failed to establish connection with remote server", vbCritical
    End Sub'当按下“F1”键时显示帮助信息
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyF1 Then
    ChDir App.Path
    '调用外部程序notepad.exe来打开帮助文本文件
    Shell "notepad.exe readme.txt", vbNormalFocus
    End IfEnd Sub'当窗体加载时显示提示信息并在 txtRemoteIP 框中显示本地主机的IP
    Private Sub Form_Load()
    Show
    MsgBox "Winsock UDT Chat" & vbCrLf & "by Theo Kandiliotis ([email protected])" & vbCrLf & vbCrLf & "F1 for help.", vbInformation
    txtRemoteIP = Winsock1.LocalIP
    End Sub'接收TEXT2输入框的按键,并做响应
    Private Sub Text2_KeyPress(KeyAscii As Integer)'定义变量 Last_Line_Feed 来记录最后输入行的位置
    Static Last_Line_Feed As Long
    '定义 New_Line 字符串记录新键入的一行文本的内容
    Dim New_Line As String
    '如果使用者按下CLEAR按钮对输入框内容清空,这时TEXT2为空,则重设最后输入行的位置为0
    If Trim(Text2) = vbNullString Then Last_Line_Feed = 0
    '当使用者按下ENTER键时
    If KeyAscii = 13 Then
       '取得最后输入行的内容并赋值给 New_Line 字符串
       New_Line = Mid(Text2, Last_Line_Feed + 1)
       '重设最后输入行的位置
       Last_Line_Feed = Text2.SelStart
       '通过 WINSOCK 发送新输入的一行文本的内容
       Winsock1.SendData New_Line
       '在状态栏显示发送信息
       StatusBar1.Panels(2).Text = "  Sent " & (LenB(New_Line) / 2) & " bytes  "
    End IfEnd Sub'当 WINSOCK 接收到新的数据(信息)时,进行以下响应
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    '定义 New_Text 字符串来记录新接收的信息
    Dim New_Text As String
    '接收信息并赋值给 New_Text
    Winsock1.GetData New_Text
    '在TEXT1显示框中显示新接收到的信息
    Text1.SelText = New_Text
    Frame1.Caption = Winsock1.RemoteHostIP
    '在状态栏中显示接收信息
    StatusBar1.Panels(2).Text = "  Recieved " & bytesTotal & " bytes  "
    End Sub'---------------------------------------------------------------------------
    '这就是一个最简单的CHAT程序,你可以在它的基础上加以改进,做出更实用的CHAT小软件。
    '---------------------------------------------------------------------------
      

  7.   

    放你个屁~!~!~!这里没有高手.~!只是一个简单的聊天程序.何况还是局域网的聊天程序.C/S都做过了.  还差这个了.靠~!~!~!~!~!     你是不是想拉人气啊.    滚到别的地方拉去.  提问的兄弟:  
    如果你想做那样的程序,你只要找个一般的教程,
    看一下winsock的工作原理,和一些必要的参数.
    就可以编一个很简单的聊天程序.  你再细看一些属性和方法.
    做一个像样的聊天程序,也只是三两天的事~!~!~!~!CSDN 是中国程序员的家!~!~!~!