Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Imports System
Imports System.Net
Imports System.Net.Sockets
Imports System.Threading
Imports System.Text
Imports System.IO
 
Public Class Form1
    Dim temp2(1024) As Byte
    Dim i As Integer
    Dim masock As Socket
    Dim temp(1024) As Byte
    Dim msg, msg2 As String
 
    'premiere chose je me conecte en envoyant un pseudonyma
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        masock.BeginConnect(New IPEndPoint(IPAddress.Parse(adresseip.Text), 12000), AddressOf connexionConnectCallback, masock)
        temp = Encoding.ASCII.GetBytes(nickname.Text)
        'envoi des info de connexion ip+pseudo
        masock.BeginSend(temp, 0, temp.Length, SocketFlags.None, AddressOf SendCallback, masock)
        'lancer le thread pour recevoir les messages envoyer par le serveur
        masock.BeginReceive(temp2, 0, temp2.Length, SocketFlags.None, AddressOf ReceiveCallback, masock)
        msg2 = Encoding.ASCII.GetChars(temp)
        'affichage dans une listview
        list.Items.Add(msg2)
 
    End Sub
 
    Private Sub connexionConnectCallback(ByVal asyncResult As IAsyncResult)
        masock.EndConnect(asyncResult)
    End Sub
    Private Sub ReceiveCallback(ByVal asyncResult As IAsyncResult)
        'j'ai mai autre beginreceive pour realiser une boucle
        masock.EndReceive(asyncResult)
        masock.BeginReceive(temp2, 0, temp2.Length, SocketFlags.None, AddressOf ReceiveCallback, masock)
    End Sub
    Private Sub SendCallback(ByVal asyncResult As IAsyncResult)
        Dim send As Integer = masock.EndSend(asyncResult)
    End Sub
 
    Private Sub addmsg(ByVal msg2 As String)
 
    End Sub
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        temp = Encoding.ASCII.GetBytes(message.Text)
        masock.BeginSend(temp, 0, temp.Length, SocketFlags.None, AddressOf SendCallback, masock)
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
 
        masock.Close()
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        masock = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
    End Sub
End Class