- »ð·ïÖ±²¥ {ÈÈÃÅÍÆ¼ö}
- NBA¾«²ÊÖ±²¥
- ×ãÇòÏÖ³¡Ö±²¥
- ÌðÐÄÖ÷²¥½âÅÌ
¶ÔÊָ߹ܾ¯¸æ£º»îÈûÎðÖØµ¸ÀÏÓ¥¸²ÕÞ£¬ÐèÎÈÖÐÇó½ø¡£
±±¾©Ê±¼ä5ÔÂ3ÈÕ£¬TheRingerÍøÕ¾µÄ×÷ÕßHoward BeckÔÚһƪÒýÈËעĿµÄÎÄÕÂÖУ¬¶Ôµ×ÌØÂÉ»îÈû¶ÓÔÚÐÝÈüÆÚµÄÔË×÷·½Ïò½øÐÐÁËÉîÈëµÄ̽ÌÖ¡£½üÆÚ£¬»îÈû¶ÓÀϰåÌÀÄ·¡¤¸ñÀï˹¶ÔýÌå͸¶³öÒ»¹ÉÇ¿Áҵġ°½ôÆÈ¸Ð¡±¡£
ËûÃ÷È·±íʾ£º¡°ÎÞÂÛÊǶÔÇòÔ±¡¢Çò¶Ó»¹ÊǶÔÎÒ×Ô¼º£¬Õâ¸öÏÄÌìµÄÖ÷Ìâ¶¼ÊǽôÆÈ¸Ð¡£ÎÞÂÛ±ÈÈü½á¹ûÈçºÎ£¬¿·¢K8µÄ½ôÆÈ¸Ð¶¼²»»áÓÐË¿ºÁµÄËÉи¡£¡±ÕâÖÖ̬¶ÈËÆºõԤʾ×Å»îÈû¶ÓÔÚ¼¾ºóÈüÖÐÓëÄá¿Ë˹µÄÁù³¡¼¤Õ½£¬Ã¿Ò»³¡¶¼Òì³£½Ó½ü£¬·Â·ðÔÚÏòÍâ½ç´«´ïÒ»¸öÐźţºÇò¶ÓÕý´¦ÔÚÉÏÉýµÄ¹ìµÀÉÏ£¬ÓÐןü½øÒ»²½µÄDZÁ¦¡£
È»¶ø£¬Ò»¸öÀ´×ÔÆäËûÇò¶ÓµÄ¸ß¹ÜµÄ¹ÛµãÈ´½ØÈ»²»Í¬¡£ÕâλÄäÃû¸ß¹ÜÔÚÆÀÂÛÖÐÖ¸³ö£¬»îÈû¶ÓÔÚÐÝÈüÆÚ×îÐèÒª×öµÄÊÇÈÃÌÀÄ·¡¤¸ñÀï˹Ã÷°×£¬Çò¶Ó»¹Ô¶Î´´ïµ½Õù¶á×ܹھüµÄ¹ìµÀ¡£Ëû¾¯¸æËµ£¬Çò¶Ó²»Ó¦ÒòΪÉÏÒ»¸öÈü¼¾µÄ³öÉ«±íÏÖ¶ø¹ýÓÚ×ÔÐÅ£¬·ñÔò¾Í¿ÉÄÜÏñÀÏÓ¥¶ÓÄÇÑù£¬Òò¹ýÓÚ¼±Ôê¶ø´íʧÁ˽øÒ»²½·¢Õ¹µÄÁ¼»ú¡£
Õâλ¸ß¹Ü½øÒ»²½²¹³äµÀ£º¡°ÔÚ×·ÇóʤÀûµÄµÀ·ÉÏ£¬ÎÈÔúÎÈ´ò²ÅÊǹؼü¡£¼±ÓÚÇó³ÉÖ»»áÈÃÇò¶ÓÏÝÈëÀ§¾³£¬ÉõÖÁ¿ÉÄÜÖØµ¸¸²ÕÞ¡£¡±ËûµÄÕâ·¬»°£¬ÎÞÒɸø»îÈû¶ÓµÄδÀ´×ßÏòͶÏÂÁËÒ»¿ÅÉî˼ÊìÂǵÄʯ×Ó¡£.net ¿ò¼ÜÏÂÈçºÎʵÏÖÒ»¸ö¼òµ¥µÄÍøÂçͨÐųÌÐò
ÔÚ.NET¿ò¼ÜÏÂʵÏÖÒ»¸ö¼òµ¥µÄÍøÂçͨÐųÌÐò£¬Í¨³£Éæ¼°µ½Socket±à³Ì¡£ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄʾÀý£¬Õ¹Ê¾ÁËÈçºÎʹÓÃC#ÔÚ.NET¿ò¼ÜÏÂʵÏÖÒ»¸ö»ù±¾µÄTCP¿Í»§¶ËºÍ·þÎñÆ÷³ÌÐò¡£
Ò»¡¢TCP·þÎñÆ÷¶Ë³ÌÐò£º
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
class TcpServer
{
private const int Port = 12345; // ÉèÖ÷þÎñÆ÷¶Ë¿ÚºÅ
private TcpListener server; // TcpListenerÓÃÓÚ¼àÌý¿Í»§¶ËÁ¬½Ó
private bool running = true; // ÓÃÓÚ¿ØÖÆ·þÎñÆ÷ÔËÐÐ״̬
public void Start()
{
server = new TcpListener(IPAddress.Any, Port); // ´´½¨TcpListener¶ÔÏó²¢¼àÌýÖ¸¶¨¶Ë¿Ú
server.Start(); // ¿ªÊ¼¼àÌýÁ¬½Ó
Console.WriteLine("·þÎñÆ÷ÒÑÆô¶¯£¬µÈ´ý¿Í»§¶ËÁ¬½Ó...");
while (running) // Ñ»·½ÓÊÕ¿Í»§¶ËÁ¬½Ó²¢´¦ÀíÏûÏ¢
{
Task
task.Wait(); // µÈ´ýÈÎÎñÍê³É£¨ÕâÀïΪ¼ò»¯Ê¾Àý¶øÊ¹ÓÃ×èÈû·½Ê½£©
}
}
private void AcceptClient(IAsyncResult ar) // ´¦Àí¿Í»§¶ËÁ¬½ÓÇëÇó²¢½ÓÊÕÏûÏ¢µÄ»Øµ÷º¯Êý
{
TcpListener listener = (TcpListener)ar.AsyncState; // »ñÈ¡TcpListener¶ÔÏóʵÀý
TcpClient client = listener.EndAcceptTcpClient(ar); // »ñÈ¡ÒÑÁ¬½ÓµÄ¿Í»§¶Ë¶ÔÏóʵÀý²¢¿ªÊ¼½ÓÊÕÏûÏ¢
Console.WriteLine("¿Í»§¶ËÒÑÁ¬½Ó£º" + client.Client.RemoteEndPoint); // Êä³ö¿Í»§¶ËÁ¬½ÓÐÅÏ¢µ½¿ØÖÆÌ¨£¨ÕâÀïΪ¼ò»¯Ê¾Àý¶øÖ±½ÓÊä³ö£©
NetworkStream stream = client.GetStream(); // »ñÈ¡ÍøÂçÁ÷¶ÔÏóÓÃÓÚ¶ÁдÊý¾Ý£¨ÕâÀïΪ¼ò»¯Ê¾Àý¶øÖ±½Ó²Ù×÷£©
string message; // ¶¨Òå±äÁ¿´æ´¢½ÓÊÕµ½µÄÏûÏ¢£¨ÕâÀïΪ¼ò»¯Ê¾Àý¶øÊ¹ÓÃ×Ö·û´®ÐÎʽ£©
using (var sr = new StreamReader(stream, Encoding.UTF8)) // ´´½¨Á÷¶ÁÈ¡Æ÷ÓÃÓÚ¶ÁÈ¡ÏûÏ¢£¨ÕâÀïʹÓÃUTF-8±àÂ룩
{
message = sr.ReadLine(); // ¶ÁȡһÐÐÏûÏ¢µ½±äÁ¿ÖУ¨ÕâÀïΪ¼ò»¯Ê¾Àý¶øÖ±½Ó¶ÁȡһÐУ©
Console.WriteLine("ÊÕµ½ÏûÏ¢£º" + message); // Êä³ö½ÓÊÕµ½µÄÏûÏ¢µ½¿ØÖÆÌ¨£¨ÕâÀïΪ¼ò»¯Ê¾Àý¶øÖ±½ÓÊä³ö£©
}
// ÕâÀï¿ÉÒÔ¼ÌÐø±àд´úÂë´¦ÀíÆäËûÏûÏ¢ºÍÒµÎñÂß¼...£¨ÕâÀïΪ¼ò»¯Ê¾Àý¶øÖ±½ÓÍ˳öÑ»·£©
running = false; // Í˳öÑ»·²¢¹Ø±ÕÁ¬½ÓºÍ·þÎñÆ÷£¨ÕâÀïΪ¼ò»¯Ê¾Àý¶øÖ±½ÓÍ˳ö£©
}
}
```¶þ¡¢TCP¿Í»§¶Ë³ÌÐò£º
```csharp
using System;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
class TcpClientDemo : IDisposable // ʵÏÖIDisposable½Ó¿ÚÒÔ±ãÔÚ²»ÐèҪʱÊÖ¶¯¹Ø±Õ¿Í»§¶ËÁ¬½ÓºÍ×ÊÔ´£¨ÕâÀïΪ¿ÉÑ¡²¿·Ö£©
{
private TcpClient client; // TcpClient