¿Í»§¶ËºÍ·þÎñ¶ËµÄ±à³ÌʵÏÖ ÏÂÔØ±¾ÎÄ

ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2026/3/16 18:41:37ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£

ÍõÌå·½10109281ÍõÑã·É 10109282 ʵÑé¿Î³É¼¨

ѧÉúѧºÅ

º¼Öݵç×ӿƼ¼´óѧ

ѧ Éú ʵ Ñé ±¨ ¸æ Êé

ʵÑé¿Î³ÌÃû³Æ ¡¶¼ÆËã»úÍøÂç¡· ʵÑéÆß ¿ª ¿Î ѧ Ôº Èí¼þ¹¤³ÌѧԺ Ö¸µ¼ÀÏʦÐÕÃû лºì±ê ѧ Éú ÐÕ Ãû ÍõÌå·½ ÍõÑã·É ѧÉúרҵ°à¼¶ Èí¼þ2°à

Ò³½Å

2011 ¡ª 2012 ѧÄê µÚ ¶þ ѧÆÚ

ʵÑé¿Î³ÌÃû³Æ£º ¼ÆËã»úÍøÂç

ʵÑéÏîÄ¿Ãû³Æ ʵÑéÕß ¿Í»§ºÍ·þÎñÆ÷ͨÐűà³ÌʵÏÖ ÍõÌå·½ ÍõÑã·É רҵ°à¼¶ Èí¼þ2 °à ʵÑé³É¼¨ ʵÑéÈÕÆÚ 2012Äê 5Ô 18ÈÕ Ò³½Å

µÚÒ»²¿·Ö£ºÊµÑé·ÖÎöÓëÉè¼Æ

Ò»¡¢ÊµÑéÄÚÈÝÃèÊö£¨ÎÊÌâÓòÃèÊö£©

1¡¢ÊµÑéÄ¿µÄ

1.1Àí½âÌ×½Ó×Ö(socket)ͨÐŵĻù±¾Ô­ÀíºÍ»úÖÆ 1.2Àí½â½ø³Ì¼äͨÐŵĻúÖÆ¡£

2¡¢ÊµÑéÒªÇó

·Ö±ð±àд¿Í·þ¶ËºÍ·þÎñÆ÷¶Ë´úÂ룬½¨Á¢¿Í»§¶ËÓë·þÎñÆ÷¶ËÖ®¼äÕýÈ·µÄsocketÁ¬½á£¨ÓïÑÔ×ÔÑ¡£¬¸½Ô´´úÂ룩

¶þ¡¢ÊµÑé»ù±¾Ô­ÀíÓëÉè¼Æ£¨°üÀ¨ÊµÑé·½°¸Éè¼Æ£¬ÊµÑéÊֶεÄÈ·¶¨£¬ÊÔÑé²½ÖèµÈ£© 1.ʵÑéÔ­Àí

socketµÄÓ¢ÎÄÔ­ÒåÊÇ¡°¿×¡±»ò¡°²å×ù¡±¡£ÔÚÕâÀï×÷Ϊ4BDS UNIXµÄ½ø³ÌͨÐÅ»úÖÆ£¬È¡ºóÒ»ÖÖÒâÒå¡£socket·Ç³£ÀàËÆÓڵ绰²å×ù¡£ÒÔÒ»¸ö¹ú¼Ò¼¶µç»°ÍøÎªÀý¡£µç»°µÄͨ»°Ë«·½Ï൱ÓÚÏ໥ͨÐŵÄ2¸ö½ø³Ì£¬ÇøºÅÊÇËüµÄÍøÂçµØÖ·£»ÇøÄÚÒ»¸öµ¥Î»µÄ½»»»»úÏ൱ÓÚһ̨Ö÷»ú£¬Ö÷»ú·ÖÅä¸øÃ¿¸öÓû§µÄ¾ÖÄÚºÅÂëÏ൱ÓÚsocketºÅ¡£ÈκÎÓû§ÔÚͨ»°Ö®Ç°£¬Ê×ÏÈÒªÕ¼ÓÐÒ»²¿µç»°»ú£¬Ï൱ÓÚÉêÇëÒ»¸ösocket£»Í¬Ê±ÒªÖªµÀ¶Ô·½µÄºÅÂ룬Ï൱ÓÚ¶Ô·½ÓÐÒ»¸ö¹Ì¶¨µÄsocket¡£È»ºóÏò¶Ô·½²¦ºÅºô½Ð£¬Ï൱ÓÚ·¢³öÁ¬½ÓÇëÇó(¼ÙÈç¶Ô·½²»ÔÚÍ¬Ò»ÇøÄÚ£¬»¹Òª²¦¶Ô·½ÇøºÅ£¬Ï൱ÓÚ¸ø³öÍøÂçµØÖ·)¡£¶Ô·½¼ÙÈçÔÚ³¡²¢¿ÕÏÐ(Ï൱ÓÚͨÐŵÄÁíÒ»Ö÷»ú¿ª»úÇÒ¿ÉÒÔ½ÓÊÜÁ¬½ÓÇëÇó)£¬ÄÃÆðµç»°»°Í²£¬Ë«·½¾Í¿ÉÒÔÕýʽͨ»°£¬Ï൱ÓÚÁ¬½Ó³É¹¦¡£Ë«·½Í¨»°µÄ¹ý³Ì£¬ÊÇÒ»·½Ïòµç»°»ú·¢³öÐźźͶԷ½´Óµç»°»ú½ÓÊÕÐźŵĹý³Ì£¬Ï൱ÓÚÏòsocket·¢ËÍÊý¾ÝºÍ´Ósocket½ÓÊÕÊý¾Ý¡£Í¨»°½áÊøºó£¬Ò»·½¹ÒÆðµç»°»úÏ൱ÓڹرÕsocket£¬³·ÏûÁ¬½Ó¡£ Ò»¸öÍêÕûµÄsocketÓÐÒ»¸ö±¾µØÎ¨Ò»µÄsocketºÅ£¬ÓɲÙ×÷ϵͳ·ÖÅä¡£

³£ÓõÄSocketÀàÐÍÓÐÁ½ÖÖ£ºÁ÷ʽSocket£¨SOCK_STREAM£©ºÍÊý¾Ý±¨Ê½Socket£¨SOCK_DGRAM£©¡£Á÷ʽÊÇÒ»ÖÖÃæÏòÁ¬½ÓµÄSocket£¬Õë¶ÔÓÚÃæÏòÁ¬½ÓµÄTCP·þÎñÓ¦Óã»Êý¾Ý±¨Ê½SocketÊÇÒ»ÖÖÎÞÁ¬½ÓµÄSocket£¬¶ÔÓ¦ÓÚÎÞÁ¬½ÓµÄUDP·þÎñÓ¦ÓᣠSocket½¨Á¢ÎªÁ˽¨Á¢Socket£¬³ÌÐò¿ÉÒÔµ÷ÓÃSocketº¯Êý£¬¸Ãº¯Êý·µ»ØÒ»¸öÀàËÆÓÚÎļþÃèÊö·ûµÄ¾ä±ú¡£socketº¯ÊýÔ­ÐÍΪ£ºint socket(int domain, int type, int protocol);domainÖ¸Ã÷ËùʹÓõÄЭÒé×壬ͨ³£ÎªPF_INET£¬±íʾ»¥ÁªÍøÐ­Òé×壨TCP/IPЭÒé×壩£»type²ÎÊýÖ¸¶¨socketµÄÀàÐÍ£ºSOCK_STREAM »òSOCK_DGRAM£¬Socket½Ó¿Ú»¹¶¨ÒåÁËԭʼSocket£¨SOCK_RAW£©£¬ÔÊÐí³ÌÐòʹÓõͲãЭÒ飻protocolͨ³£¸³Öµ\¡£Socket()µ÷Ó÷µ»ØÒ»¸öÕûÐÍsocketÃèÊö·û£¬Äã¿ÉÒÔÔÚºóÃæµÄµ÷ÓÃʹÓÃËü¡£ SocketÃèÊö·ûÊÇÒ»¸öÖ¸ÏòÄÚ²¿Êý¾Ý½á¹¹µÄÖ¸Õ룬ËüÖ¸ÏòÃèÊö·û±íÈë¿Ú¡£µ÷ÓÃSocketº¯Êýʱ£¬socketÖ´ÐÐÌ彫½¨Á¢Ò»¸öSocket£¬Êµ¼ÊÉÏ\½¨Á¢Ò»¸öSocket\Òâζ×ÅΪһ¸öSocketÊý¾Ý½á¹¹·ÖÅä´æ´¢¿Õ¼ä¡£ SocketÖ´ÐÐÌåΪÄã¹ÜÀíÃèÊö·û±í¡£Á½¸öÍøÂç³ÌÐòÖ®¼äµÄÒ»¸öÍøÂçÁ¬½Ó°üÀ¨ÎåÖÖÐÅÏ¢£ºÍ¨ÐÅЭÒé¡¢±¾µØÐ­Ò鵨ַ¡¢±¾µØÖ÷»ú¶Ë¿Ú¡¢Ô¶¶ËÖ÷»úµØÖ·ºÍÔ¶¶ËЭÒé¶Ë¿Ú¡£SocketÊý¾Ý½á¹¹Öаüº¬ÕâÎåÖÖÐÅÏ¢¡£ socketÔÚ²âÁ¿Èí¼þÖеÄʹÓÃÒ²ºÜ¹ã·º 2.ʵÑé²½Öè

±¾ÊµÑéÔÚVS2008ÏÂʵÏÖ£¬±¾»úipΪ169.254.59.194£¬ÊµÑéҪʵÏÖ¿Í»§¶ËÓë·þÎñ¶ËÔÚ8000ºÅ¶Ë¿ÚµÄͨÐÅ£¬¾ßÌå´úÂëÈçÏ£º

·þÎñ¶Ë´úÂë

Ò³½Å

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.Threading; namespace temp { public partial class Form1 : Form { Thread LisThread; //Ïß³Ì Socket LisSocket; //ÓÃÓÚ¼àÌý Socket newSocket; //ÓÃÓÚͨÐÅ EndPoint point; string strmes = string.Empty; //ÓÃÓÚ´æ·ÅͨÐŵÄÐÅÏ¢ public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) {//½¨Á¢Á¬½Ó LisThread = new Thread(new ThreadStart(BeginListern)); //¿ªÏß³ÌÖ´ÐÐBeginListern·½·¨ LisThread.Start();//Ï߳̿ªÊ¼Ö´ÐÐ button1.Enabled = false; } public void BeginListern() { LisSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); //³õʼ»¯LisSocket string ip = \±¾»úip IPAddress ServerIp = IPAddress.Parse(ip); IPEndPoint iep = new IPEndPoint(ServerIp, 8000); LisSocket.Bind(iep); //°ó¶¨socket toolStripStatusLabel1.Text = \ÕýÔÚ¼àÌý£º\ LisSocket.Listen(50); //¿ªÊ¼¼àÌý newSocket = LisSocket.Accept(); //»ñÈ¡Á¬½ÓÇëÇóµÄSocket Ò³½Å

while (true) { try { byte[] byteMessage = new byte[100]; newSocket.Receive(byteMessage); //½ÓÊÜÐÅÏ¢ toolStripStatusLabel1.Text = \ÊÕµ½ÐÅÏ¢\ Control.CheckForIllegalCrossThreadCalls = false; strmes += \¿Í»§¶Ë \+Encoding.Default.GetString(byteMessage).Trim(new char[] { '\\0' })+\ richTextBox1.Text = strmes; //ÏÔʾÐÅÏ¢ } catch(SocketException ex) { MessageBox.Show( ex.ToString()); } } } private void button3_Click(object sender, EventArgs e) {//Í˳ö Application.Exit(); } private void button2_Click(object sender, EventArgs e) {//·¢ËÍÐÅÏ¢ if (richTextBox2.Text != \ { byte[] byteData = Encoding.ASCII.GetBytes(richTextBox2.Text); newSocket.Send(byteData);//·¢ËÍÐÅÏ¢¼´ÓÉ·þÎñÆ÷Íù¿Í»§¶ËÉÏ·¢ÐÅÏ¢ strmes += \·þÎñ¶Ë \richTextBox2.Text + \ richTextBox2.Text = \ richTextBox1.Text = strmes; //¸üÐÂÊä³ö toolStripStatusLabel1.Text = \³É¹¦·¢ËÍÐÅÏ¢\ } } private void button4_Click(object sender, EventArgs e) {//Çå¿Õ richTextBox1.Text = \ strmes = string.Empty; } private void button5_Click(object sender, EventArgs e) {//¶Ï¿ªÁ¬½Ó try Ò³½Å