9Mcode comment |
 |
 |
|
|
|
 |
- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -
|
|
 |
กระทู้ #2876 [Vb] (จาก IP: 124.122.90.223)
ถามเกียวกับ winsock ครับ/ส่งข้อมูลทาง internet
อยากทรายว่า winsock สามารถเขียนโปรเเกรม chat ผ่าน internet ได้หรือป่าว (เขียน chat ผ่านlan ได้เเล้ว) ถ้าได้ช่วยเเนะนำหน่อย ครับ ว่า ต้องทำไง ถ้า ไม่ได้ ช่วยเเนะนำ เเนวทาง/วิธี ที่จะเขียนโปรเเกรม chat ผ่าน internet คืองานที่ต้องการประมาน จะ ส่งข้อมูล ผ่านทาง internet ส่งระหว่าง com 2 เครื่องหรือมากกว่า เเบบเป็น real time อ่ะครับ ขอเป็น win app(ถ้าทำได้น่ะครับ พอดี พึ่งหัดเขียน ยังเป็นเเค่ win app ครับ) ใช้ vb2008 .net 3.5 ขอบคุนล่วงหน้า น่ะครับ
|
จากคุณ
:
gOlf / abeedin@hotmail.com [2010-05-21 10:24:07]
|
|
ความคิดเห็น #27878 (จาก IP: 125.24.154.24)
chat ผ่าน internet ก็ต้องใช้ IP จริง (ไม่ใช่ ip ในวง lan)
หากต้องการติดต่อกันหลายเครื่องบน internet ก็ต้องมี server ทำหน้าที่กระจายข้อความ
มี server ฟรี และ client ฟรี ค้นกับ google ก็น่าจะเจอ |
จากคุณ
:
sup98 [2010-05-21 13:18:01]
|
 |
ความคิดเห็น #27879 (จาก IP: 124.122.90.223)
ลองเเล้ว ครับ ไม่ได้ เปลี่ยน จาก 192.168.1.34 เป็น 124.122.90.xxx รึป่่าว ลองเเล้วน่ะ เเต่ไม่ได้ อาการ เหมือนใส่ipที่ไม่มี<br><br>หรอลองเขียน code คร่าวๆ หน่อยครับ |
จากคุณ
:
gOlf [2010-05-21 13:37:11]
|
 |
ความคิดเห็น #27880 (จาก IP: 124.122.90.223)
เเก้ข้างบนน่ะอ่านไม่รู้เรื่อง <br><br>ลองเเล้ว ครับ ไม่ได้<br><br>คิอลองเปลี่ยน จาก 192.168.1.34 เป็น 124.122.90.xxx <br><br>ลองเเล้วน่ะ เเต่ไม่ได้ อาการ เหมือนหาไอพี่นี้ไม่เจอ <br><br>ลองเขียน code คร่าวๆ เป็นตัวอย่าองหน่อยน่ะครับ <br><br>0 - sckTCPProtocol กับ 1 - sckUDPProtocol ต่างกันไงครับ |
จากคุณ
:
gOlf [2010-05-21 14:45:53]
|
 |
ความคิดเห็น #27881 (จาก IP: 125.24.154.24)
บนเครื่อง 124.122.90.xxx มีโปรแกรมที่เขียน winsock ไว้รับการติดต่อ(หรือใช้ chat server เปิด port รอการติดต่อ) ทำงานเป็น server
ถ้าติดต่อไม่ได้ ก็ลอง telnet ไปที่ port ที่ server เปิดไว้ ว่าติดต่อได้ไหม๊(ใช้ cmd บน windows นี่หละลอง)
TCP เป็นการเชื่อมต่อ connection ไว้ตลอดเวลา ในการส่งข้อมูลระหว่างกัน
UDP เป็นการเชื่อมต่อ ชั่วคราว คือส่งข้อมูลเสร็จ ก็ตัดการติดต่อ
ข้อดีข้อเสีย TCP เชื่อถือได้แต่ช้ากว่า UDP UDP เชื่อถือไม่ค่อยได้ แต่เร็วกว่า TCP
โค้ดไม่มีขอโทษด้วยเพราะใน google มีแยะอยู่แล้ว |
จากคุณ
:
sup98 [2010-05-21 18:25:55]
|
 |
ความคิดเห็น #27882 (จาก IP: 124.122.172.32)
ขอบคุนน่ะครับ ต้องไปลองมั่วต่อ อิอิ อาจจะมารบกวนอีกน่ะครับ ผมเอาโคดที่ผมเขียนอยู่ มาไห้ดู น่ะ ครับ เพื่อ มีไรจะเเนะนำ
เครื่อง server
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load AxWinsock1.Bind(5631, AxWinsock1.LocalIP) End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click AxWinsock1.SendData(TextBox1.Text) TextBox1.Text = "" TextBox1.Focus()
End Sub
Private Sub AxWinsock1_DataArrival(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles AxWinsock1.DataArrival Dim str As String = "" AxWinsock1.GetData(str) TextBox2.Text = TextBox2.Text & str & vbNewLine ListBox1.Items.Add(str) 'send message to Client
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click AxWinsock1.Listen() End Sub End Class
เครื่อง client
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click AxWinsock2.RemoteHost = "192.168.0.1" AxWinsock2.RemotePort = 6543 AxWinsock2.SendData(TextBox2.Text) TextBox2.Text = "" TextBox2.Focus() End Sub
Private Sub AxWinsock1_DataArrival(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles AxWinsock2.DataArrival Dim str As String = "" AxWinsock2.GetData(str) TextBox1.Text = str & vbNewLine
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub End Class
ตอนจะ chat เเบบเน็ต ผมเปลี่ยน192.168.0.1เป็น 124.122.90.102 อ่ะ คับ โปรเเกรมรันได้ปกติ เเต่ client พิม server ไม่ได้รับอ่ะครับ เเละอีก อย่างตอนเเรกผมใช้ 1 - sckUDPProtเเต่พอเปลี่ยนไอพีเป็น 124.122.90.102 ต้องใช้เป๋น 0 - sckTCPProtocol ไม่งั้นจะ รันไม่ผ่านอ่ะครับ
ปัญหาที่เป็นอยู่ก้อปรามานนี้อ่ะครับ
ขอบคุนครับ |
จากคุณ
:
gOlf [2010-05-24 09:47:28]
|
 |
ความคิดเห็น #27883 (จาก IP: 124.122.172.32)
ลืมบอกไปน่ะครับ เน็นที่ใช้เป็น ไวเลสเเลน ของที่ฝึกงาน น่ะครับ ทั้งเครื่อง server เเละ client เลย เเต่คนล่ะเน็ตคนล่ะตัวกันน่ะ (ip ภายนอกไม่เหมือนกันอ่ะครับ) ไม่รู้ว่าเครื่อง server ต้อง forward port อะไรรึป่าว |
จากคุณ
:
gOlf [2010-05-24 09:57:00]
|
 |
ความคิดเห็น #27884 (จาก IP: 124.122.172.158)
telnet ไปที่ port ที่ server เปิดไว้ ว่าติดต่อได้ไหม๊(ใช้ cmd บน windows นี่หละลอง)
ทำไงหรอ ครับ ช่วยบอกที่ ลองเซิท มัน ก้อมีเเบบ เป็นใช้โปรเเกรม
เเละที่ทำ นี้ ปรามานว่า โปรเเกม serverแที่ พมเขียน เปิดพอต 6543 ก็ติดต่อไปที่ 6543 รึป่าว ทำไงก้อช่วยบอกที่น่ะครับ
ขอบคุนครับ |
จากคุณ
:
gOlf [2010-05-25 09:51:11]
|
 |
ความคิดเห็น #27887 (จาก IP: 124.122.172.80)
Help me Plz !!!
Thxx |
จากคุณ
:
gOlf [2010-05-26 17:12:02]
|
 |
ความคิดเห็น #27888 (จาก IP: 125.24.133.254)
telnet [ip] [port]
เล่น telnet 127.0.0.1 80 เป็นต้น |
จากคุณ
:
sup98 [2010-05-26 23:07:02]
|
 |
ความคิดเห็น #27889 (จาก IP: 125.24.133.254)
server เปิดพอต 6543 ,client ก็ติดต่อไปที่ 6543 ส่วนระบบจัดการสำคัญมากคือ ห้ามเอา server 6543 มารับ connection เพราะจะทำให้ client ตัวอื่นติดต่อเข้ามาไม่ได้ (ก็ server ดันมี connection อื่นแล้ว
การจัดการคือคุณต้องสร้าง winsock อื่นมารับ request ของ client (อาจจะเป็น array ของ winsock ก็ว่ากันไป)
หาโค้ดคนอื่นมาแกะมากๆครับ ผมเองเคยแกะตอนทำ project เมื่อนานมาแล้ว คงช่วยอะไรไม่ได้มาก
ที่อยากเพิ่มเติมคือคุณใช้ vb6 มันไม่เหมาะสมแล้วครับ เพราะมี tools อื่นๆที่เค้ามี component มาให้ใช้เลย แค่เรียนรู้วิธีการใช้ เช่น Delphi เป็นต้น ไม่ต้องเสียเวลามา manage อะไรเอง งานเสร็จเร็ว และมีประสิทธิภาพกว่าแยะ (แค่อยากเสนอแนะ) |
จากคุณ
:
sup98 [2010-05-27 00:17:43]
|
 |
ความคิดเห็น #27894 (จาก IP: 124.120.236.251)
ขอบคุนครับ
server เปิดพอต 6543 ,client ก็ติดต่อไปที่ 6543 ส่วนระบบจัดการสำคัญมากคือ ห้ามเอา server 6543 มารับ connection เพราะจะทำให้ client ตัวอื่นติดต่อเข้ามาไม่ได้ (ก็ server ดันมี connection อื่นแล้ว
การจัดการคือคุณต้องสร้าง winsock อื่นมารับ request ของ client (อาจจะเป็น array ของ winsock ก็ว่ากันไป)
ผมอ่าน เเล้ว งงๆ คืองง ว่าตัวอื่นที่มายุงในพอต 6543 คือไรอ่ะครับมีเเค่ serverกับ clientที่ตืดต่อกัน ที่จริงยังติดต่อไม่ได้ด้วย ผมอาจจะโง่ไปหน่อย เเต่จะลองหาโค้ดมาเเกะดูครับ
ที่ต้องใช้ vb เพราะมันต้องเป้นส่วนหนึ่งของโปรเเกรมที่ทำด้วย vb2008 อ่ะครับ ขอบคุนน่ะครับ |
จากคุณ
:
gOlf [2010-05-27 12:31:49]
|
 |
ความคิดเห็น #27895 (จาก IP: 210.213.59.249)
server ก็คือ winsock ตัวนึง, ตัวอื่นๆก็คือ ชุดของ winsock หลายๆตัวที่จะมารับ connection , ส่วน client ก็มี winsock ของตัวเอง เปิดหลายๆตัว ก็คือมี winsock หลายตัวขอทำการติดต่อกับ server
ส่วน server ก็ต้องเอา winsockตัวอื่นๆที่ว่างมารับการติดต่อ
ผมเคยแกะโค้ดเมื่อเกือบ 10 ปีที่แล้วเค้าใช้วิธีนี้ครับ วิธีอื่นก็มีครับ คือประยุกต์ทำเป็น Thread ซะส่วนใหญ่
ขอโทษที่ทำให้งงครับ |
จากคุณ
:
sup98 [2010-05-27 15:04:47]
|
 |
ความคิดเห็น #27896 (จาก IP: 124.122.195.90)
ออ เข้า ใจเเล้วครับ ขอบคุน ครับ |
จากคุณ
:
golf [2010-05-28 15:23:29]
|
 |
ความคิดเห็น #28301 (จาก IP: 223.206.126.142)
ผมทำได้แล้ว....โครตดีใจเลย ค้นหามาตั้งนาน แต่ผมไม่บอกหรอก มันเป็นธุรกิจ... ค่าวิชา 555 |
จากคุณ
:
bidE / BiosX [2011-04-12 12:10:21]
|
 |
|
- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -
|
|
|
|
|
|
|