Thông báo

Collapse
No announcement yet.

Giao tiếp giữa 2 máy tính qua cổng Com

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Giao tiếp giữa 2 máy tính qua cổng Com

    Các sư huynh ơi! Giúp đệ với.Đệ đang có vấn đề với cái đề án môn học ghép nối máy tính của đệ.Yêu cầu của bài là lập trình để truyền kí tự và file text giữa 2 máy tính qua cổng com.Phần truyền kí tự thì đệ đã làm được nhưng còn phần truyền file thì không ổn.
    Để kiểm tra thì đệ nối chân 2 và chân 3 của máy mình để truyền nhận thử.Phần truyền kí tự thì đã ok nhưng khi truyền file thì lúc save vào máy rồi mở lại thì file nhận không có dữ liệu.Đệ đã tìm hiểu rùi nhưng vẫn không ra nên phải nhờ các huynh giúp đỡ.Dưới đây đệ xin gửi CODE và cả giao diện để các huynh kiểm tra hộ xem vấn đề sai ở đâu hay thiếu cái gì nữa.Mong các huynh giúp đỡ.

    CODE:

    Private Sub Command1_Click()
    On Error GoTo OpenFalse
    If MSComm1.PortOpen = False Then
    MSComm1.PortOpen = True
    End If
    Exit Sub
    OpenFalse:
    MsgBox Err.Description & vbLf + vbCr + "Loi, khong the mo cong. Hay dong cac ung dung dang su dung cong COM"

    End Sub

    Private Sub Command2_Click()
    If MSComm1.PortOpen = True Then
    MSComm1.PortOpen = False
    End If
    End
    End Sub

    Private Sub Command3_Click()
    On Error GoTo sendfalse
    MSComm1.Output = Trim(Text1.Text)
    Text1.Text = ""
    Exit Sub
    sendfalse:
    MsgBox "Loi, Cong COM chua duoc mo"
    End Sub

    Private Sub Command4_Click()
    Text2.Text = ""
    End Sub

    Private Sub Command5_Click()
    Cdlg.DialogTitle = "Send file..."
    Cdlg.Filter = "Textfile (*.TXT)|*.txt|All Files (*.*)|*.*"
    Cdlg.InitDir = App.Path
    Cdlg.FileName = ""
    Cdlg.ShowOpen
    Text1.Text = Cdlg.FileName
    Label1.Caption = Str(Round(FileLen(Text1.Text) / 1024, 2)) + "KB"
    Exit Sub
    Loi:
    Label1.Caption = "0 KB"
    Text1.Text = ""
    Text2.Text = "Da truyen file qua cong COM1 thanh cong"
    ' goi ham truyen file
    If Cdlg.FileName <> "" Then SendFile (Cdlg.FileName)
    End Sub

    Private Sub Command6_Click()
    FileReceive = FreeFile
    ReceiveFlag = True
    Timer1.Enabled = False
    Do
    Cdlg.FileName = ""
    Cdlg.ShowSave
    If Trim(Cdlg.FileName) = "" Then
    MsgBox "File name error!!"
    End If
    Loop While Trim(Cdlg.FileName) = ""
    Text2.Text = Cdlg.FileName
    MSComm1.Output = "RECEIVE" + vbCr
    Open Trim(Text2.Text) For Output As FileReceive
    End Sub

    Private Sub Form_Load()
    With MSComm1
    .Settings = "9600,N,8,1"
    .RThreshold = 1 'su kien OnComm xay ra khi bat kì kí tu nào duoc chuyen den bo dem nhan.
    .Handshaking = comNone
    .SThreshold = 0
    .InBufferSize = 1024
    .OutBufferSize = 1024
    .InputMode = comInputModeText 'quyet dinh dang du lieu nhan duoc la dang text
    .InputLen = 0
    .CommPort = 1 'thiêt lâp và tra vê tên cua công giao tiêp la cong COM1
    End With
    End Sub

    Private Sub MSComm1_OnComm()
    If (MSComm1.CommEvent = comEvReceive) Then
    Text2.Text = Text2.Text + MSComm1.Input
    End If
    End Sub
    ' ham truyen File
    Function SendFile(tmp$)
    Dim temp$
    Dim hsend, bsize, LF&

    ' mo file
    Open tmp$ For Binary Access Read As #2
    ' kiem tra kich thuoc Mscomm1 OutBuffer
    bsize = MSComm1.OutBufferSize
    ' kiem tra kich thuoc File
    LF& = LOF(2)

    ' code nay se chia du lieu thanh nhung fan nho(Buffer sized)
    ' va gui chung di

    Do Until EOF(2)

    If LF& - Loc(2) <= bsize Then
    bsize = LF& - Loc(2) + 1
    End If

    ' tao vung chua du lieu
    temp$ = Space$(bsize)

    ' dat du lieu vao bien Temp$ dang string
    Get #2, , temp$

    MSComm1.Output = temp$

    Do
    ret = DoEvents()
    ' cho den khi buffer trong
    Loop Until MSComm1.OutBufferCount = 0
    Loop

    ' dong file
    Close #2

    End Function
    Attached Files

  • #2
    huhu! ko có sư huynh nào giúp đệ ah?
    Đệ đã tìm tài liệu nghâm cứu và làm thử rồi nhưng vẫn chưa giải quyết được vấn đề.Sư huynh nào cao tay giúp đệ với.Mau mau!!! đệ sắp phải nộp bài rùi.Đây là bài đề tài hết môn của đệ đó.Bài này rất quan trọng nên mong các huynh giúp đỡ.Đệ xin hậu tạ!!!!!

    Comment


    • #3
      Nguyên văn bởi tcoi001 Xem bài viết
      huhu! ko có sư huynh nào giúp đệ ah?
      Đệ đã tìm tài liệu nghâm cứu và làm thử rồi nhưng vẫn chưa giải quyết được vấn đề.Sư huynh nào cao tay giúp đệ với.Mau mau!!! đệ sắp phải nộp bài rùi.Đây là bài đề tài hết môn của đệ đó.Bài này rất quan trọng nên mong các huynh giúp đỡ.Đệ xin hậu tạ!!!!!
      Dây la bài tập nhỏ mình làm, có đầy đủ yêu cầu của bạn, có thêm 1 số tính năng mới hay .

      Comment


      • #4
        Cám ơn h_h_h đã giúp mình!nhưng mình không thấy có file đính kèm. Bạn có thể gửi lại cho mình được không.Bạn có thể gửi trực tiếp vào mail của mình truongtrung8730@yahoo.com.vn
        Rất cảm ơn bạn!

        Comment


        • #5
          Nguyên văn bởi tcoi001 Xem bài viết
          Cám ơn h_h_h đã giúp mình!nhưng mình không thấy có file đính kèm. Bạn có thể gửi lại cho mình được không.Bạn có thể gửi trực tiếp vào mail của mình truongtrung8730@yahoo.com.vn
          Rất cảm ơn bạn!
          Lâu quá rùi , ko để ý , chắc do lỗi diễn đàn thui . minh up lại
          Attached Files

          Comment


          • #6
            anh e dang lam bo truyen data khong day rf.cung dung vb de lap trinh.nhung chi co the gui data 8 bit thoi,,con gui 1 file nho nho tu pc thi e khong bit..mong cac dai ca giup e voi

            Comment


            • #7

              Comment


              • #8
                anh ơi sao em không chạy được phần mềm main.exe nó cứ báo lỗi MSCOMM32.OCX

                Comment


                • #9
                  bạn ơi...code của bạn khi bật lên làm thế nào để cho truyền dữ liệu thế?

                  Comment

                  Về tác giả

                  Collapse

                  tcoi001 Tìm hiểu thêm về tcoi001

                  Bài viết mới nhất

                  Collapse

                  Đang tải...
                  X