亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? wintalk.cs

?? 用VC開(kāi)發(fā)的關(guān)于socket通訊的原代碼,
?? CS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*=====================================================================
  File:      Wintalk.cs

  Summary:   Demonstrates how to create a socket chat application
             using various .NET Framework library types.

---------------------------------------------------------------------
  This file is part of the Microsoft .NET Framework SDK Code Samples.

  Copyright (C) 2000 Microsoft Corporation.  All rights reserved.

This source code is intended only as a supplement to Microsoft
Development Tools and/or on-line documentation.  See these other
materials for detailed information regarding Microsoft code samples.

THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
=====================================================================*/

using System;
using System.Globalization;
using System.IO;
using System.Text;
using System.Threading;
using System.Net;
using System.Net.Sockets;
using System.Drawing;
using System.Windows.Forms;

class App{        
    // Entry point
    public static void Main(String[] args){        
        // If the args parse in known way then run the app
        if(ParseArgs(args)){           
            // Create a custom Talker object
            Talker talker = new Talker(endPoint, client);
            // Pass the object reference to a new form object
            TalkForm form = new TalkForm(talker);                   
            // Start the talker "talking"
            talker.Start();

            // Run the applications message pump
            Application.Run(form);
        }        
    }

    // Parsed Argument Storage
    private static IPEndPoint endPoint;
    private static bool client;

    // Parse command line arguments
    private static bool ParseArgs(String[] args){
        try{        
            if(args.Length == 0){
                client = false;
                endPoint = new IPEndPoint(IPAddress.Any,5000);
                return true;
            }
			if (args[0][0]!='/' && args[0][0]!='-') 
			{
				ShowUsage();
				return false;
			}
            switch(Char.ToUpper(args[0][1], CultureInfo.InvariantCulture)){
            case 'L':
                int port = 5000;
                if(args.Length > 1){
                   port = Convert.ToInt32(args[1]);    
                }
                endPoint = new IPEndPoint(IPAddress.Any,port);
                client = false;
                break;
            case 'C':
                port = 5000;
                String address = "127.0.0.1";
                client = true;
                if(args.Length > 1){
                    address = args[1];
                    port = Convert.ToInt32(args[2]);                                        
                }                
                endPoint = new IPEndPoint(Dns.Resolve(address).AddressList[0], port);
                break;
            default:
                ShowUsage();
                return false;
            }
        }catch{
            ShowUsage();
            return false;
        }
    
        return true;
    }

    // Show sample usage
    private static void ShowUsage(){
        MessageBox.Show("WinTalk [switch] [parameters...]\n\n"+
            "  /L  [port]\t\t-- Listens on a port.  Default:  5000\n"+
            "  /C  [address] [port]\t-- Connects to an address and port.\n\n"+
            "Example Server - \n"+
            "Wintalk /L\n\n"+
            "Example Client - \n"+
            "Wintalk /C ServerMachine 5000","WinTalk Usage");
    }
}

// UI class for the sample
class TalkForm:Form {    
    public TalkForm(Talker talker) {
        // Associate for method with the talker object
        this.talker = talker;
        talker.Notifications += new 
                Talker.NotificationCallback(HandleTalkerNotifications);

        // Create a UI elements
        Splitter talkSplitter = new Splitter();
        Panel talkPanel = new Panel();        

        receiveText = new TextBox();
        sendText = new TextBox(); 
        
        // we'll support up to 64k data in our text box controls
        receiveText.MaxLength = sendText.MaxLength = 65536;
        statusText = new Label();
     
        // Initialize UI elements
        receiveText.Dock = DockStyle.Top;
        receiveText.Multiline = true;
        receiveText.ScrollBars = ScrollBars.Both;
        receiveText.Size = new Size(506, 192);
        receiveText.TabIndex = 1;
        receiveText.Text = "";
        receiveText.WordWrap = false;
        receiveText.ReadOnly = true;
        
        talkPanel.Anchor = (AnchorStyles.Top|AnchorStyles.Bottom
                    |AnchorStyles.Left|AnchorStyles.Right);
        talkPanel.Controls.AddRange(new Control[] {sendText,
                    talkSplitter,
                    receiveText});
        talkPanel.Size = new Size(506, 371);
        talkPanel.TabIndex = 0;

        talkSplitter.Dock = DockStyle.Top;
        talkSplitter.Location = new Point(0, 192);
        talkSplitter.Size = new Size(506, 6);
        talkSplitter.TabIndex = 2;
        talkSplitter.TabStop = false;
        
        statusText.Dock = DockStyle.Bottom;
        statusText.Location = new Point(0, 377);
        statusText.Size = new Size(507, 15);
        statusText.TabIndex = 1;
        statusText.Text = "Status:";

        sendText.Dock = DockStyle.Fill;
        sendText.Location = new Point(0, 198);
        sendText.Multiline = true;
        sendText.ScrollBars = ScrollBars.Both;
        sendText.Size = new Size(506, 173);
        sendText.TabIndex = 0;
        sendText.Text = "";
        sendText.WordWrap = false;
        sendText.TextChanged += new EventHandler(HandleTextChange);
        sendText.Enabled = false;

        AutoScaleBaseSize = new Size(5, 13);
        ClientSize = new Size(507, 392);
        Controls.AddRange(new Control[] {statusText,
                    talkPanel});
        Text = "WinTalk";
    }    

    // When the app closes, dispose of the talker object
    protected override void OnClosed(EventArgs e){
        if(talker!=null){
            // remove our notification handler
            talker.Notifications -= new 
                Talker.NotificationCallback(HandleTalkerNotifications);
            
            talker.Dispose();
        }
        base.OnClosed(e);
    }

    // Handle notifications from the talker object
    private void HandleTalkerNotifications(
        Talker.Notification notify, Object data){
        switch(notify){
        case Talker.Notification.Initialized:
            break;
        // Respond to status changes
        case Talker.Notification.StatusChange:
            Talker.Status status = (Talker.Status)data;
            statusText.Text = String.Format("Status: {0}", status);
            if(status == Talker.Status.Connected){
                sendText.Enabled = true;
				sendText.Focus();
            }
            break;
        // Respond to received text
        case Talker.Notification.ReceivedAppend:
            receiveText.AppendText(data.ToString());
            //receiveText.SelectionStart = Int32.MaxValue;
            //receiveText.ScrollToCaret();        
            break;
        case Talker.Notification.ReceivedRefresh:
            receiveText.Text = data.ToString();
            receiveText.SelectionStart = Int32.MaxValue;
            receiveText.ScrollToCaret();        
            break;
        // Respond to error notifications
        case Talker.Notification.Error:            
            Close(data.ToString());        
            break;
        // Respond to end
        case Talker.Notification.End:                                    
			// Don't send any more text
			sendText.TextChanged -= new EventHandler(HandleTextChange); 
			MessageBox.Show(this, data.ToString(), "Closing WinTalk");             
            Close();
            break;
        default:
            Close();
            break;
        }
    }

    // Handle text change notifications and send talk
    private void HandleTextChange(Object sender, EventArgs e){
        if(talker != null){
            talker.SendTalk((sender as TextBox).Text);
        }        
    }   

    // Close with an explanation
    private void Close(String message){   
        MessageBox.Show(message, "Error!");        
        Close();
    }

    // Private UI elements
    private TextBox receiveText;        
    private TextBox sendText;    
    private Label statusText;
    private Talker talker;   
}

// An encapsulation of the Sockets class used for socket chatting
class Talker:IDisposable{
    // Construct a talker 
    public Talker(IPEndPoint endPoint, bool client){
        this.endPoint = endPoint;
        this.client = client;

        socket = null;
        reader = null;
        writer = null;

        statusText = prevSendText = prevReceiveText = String.Empty;
    }

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
eeuss国产一区二区三区| 欧美午夜精品久久久| 樱桃视频在线观看一区| 日韩一级完整毛片| 色综合网色综合| 国产尤物一区二区| 亚洲福利一区二区三区| 国产精品美女一区二区三区 | 日韩欧美一区电影| 99久久精品国产麻豆演员表| 麻豆成人av在线| 亚洲狠狠爱一区二区三区| 久久精品夜色噜噜亚洲a∨| 欧美日韩国产区一| 99天天综合性| 国产大陆a不卡| 免费成人在线观看| 夜夜嗨av一区二区三区四季av| 久久久亚洲国产美女国产盗摄| 欧美另类videos死尸| 91在线观看成人| 成人综合婷婷国产精品久久蜜臀 | 亚洲欧美激情在线| 国产无一区二区| 精品精品国产高清a毛片牛牛| 欧美亚洲综合网| 91麻豆.com| av一二三不卡影片| 丰满岳乱妇一区二区三区| 国产在线观看一区二区| 免费成人av在线| 全国精品久久少妇| 日产国产欧美视频一区精品| 亚洲动漫第一页| 亚洲不卡av一区二区三区| 亚洲三级视频在线观看| 中文字幕中文字幕在线一区| 国产拍揄自揄精品视频麻豆| 久久日韩精品一区二区五区| 精品奇米国产一区二区三区| 日韩天堂在线观看| 日韩视频免费观看高清完整版在线观看 | 精品国产麻豆免费人成网站| 日韩免费一区二区| 日韩欧美一二三区| 精品久久久久久久久久久院品网 | 91超碰这里只有精品国产| 欧美日韩激情一区二区| 欧美综合视频在线观看| 欧洲生活片亚洲生活在线观看| 色婷婷综合久色| 欧美三级午夜理伦三级中视频| 欧美最新大片在线看| 欧美日韩一区二区不卡| 91精品在线麻豆| 精品成人一区二区三区| 久久精品网站免费观看| 国产精品青草综合久久久久99| 亚洲国产高清不卡| 亚洲人吸女人奶水| 亚洲电影第三页| 美国三级日本三级久久99| 国产精品一线二线三线精华| 成人免费视频视频| 在线精品视频一区二区三四 | 欧美mv日韩mv国产网站app| 26uuu国产电影一区二区| 国产精品初高中害羞小美女文| 亚洲精品日韩综合观看成人91| 午夜私人影院久久久久| 国产一区欧美一区| av不卡在线播放| 欧美精品日韩综合在线| 2022国产精品视频| 亚洲卡通动漫在线| 麻豆精品视频在线观看免费| 从欧美一区二区三区| 日本久久一区二区三区| 精品欧美一区二区三区精品久久| 国产精品网站在线观看| 午夜精品视频一区| 国产91高潮流白浆在线麻豆 | 国产欧美日韩视频在线观看| 亚洲精品免费播放| 久久99热99| 色综合久久中文字幕综合网 | 玉米视频成人免费看| 免费成人av资源网| 91在线小视频| 精品久久久久久久一区二区蜜臀| 1024国产精品| 激情伊人五月天久久综合| 91网站在线观看视频| 精品欧美乱码久久久久久1区2区| 综合中文字幕亚洲| 国模冰冰炮一区二区| 欧美在线小视频| 国产精品免费人成网站| 九九国产精品视频| 欧美日韩视频在线第一区| 国产欧美综合色| 奇米影视一区二区三区小说| 不卡av免费在线观看| 精品国产一区a| 婷婷中文字幕一区三区| 97aⅴ精品视频一二三区| 亚洲一区二区在线免费看| 国产河南妇女毛片精品久久久| 欧美剧在线免费观看网站 | 国产欧美一区二区三区在线看蜜臀 | 午夜精品久久一牛影视| 不卡一区二区在线| 久久久久久久av麻豆果冻| 午夜精品久久久久久久99水蜜桃| 波多野结衣中文一区| 久久综合色婷婷| 日本午夜一区二区| 欧美日韩国产在线播放网站| 亚洲乱码国产乱码精品精小说 | 99国产精品久久久久| 国产欧美日韩精品在线| 久久狠狠亚洲综合| 6080yy午夜一二三区久久| 夜夜爽夜夜爽精品视频| 95精品视频在线| 亚洲欧美怡红院| 成人深夜在线观看| 国产精品欧美一区喷水| 国产又黄又大久久| 欧美精品一区二区三区很污很色的 | 日韩欧美国产午夜精品| 蜜臀av在线播放一区二区三区 | 欧美视频精品在线观看| 一区二区三区国产精品| 色偷偷成人一区二区三区91| 亚洲人成网站色在线观看| 91在线观看美女| 亚洲天天做日日做天天谢日日欢| 成人av网址在线| 中文字幕在线播放不卡一区| 99久久久精品免费观看国产蜜| 中文字幕在线不卡国产视频| 91无套直看片红桃| 一区二区三区四区不卡在线| 在线视频亚洲一区| 调教+趴+乳夹+国产+精品| 制服.丝袜.亚洲.中文.综合| 秋霞电影网一区二区| 日韩精品一区二区三区视频播放 | 午夜精品影院在线观看| 在线综合+亚洲+欧美中文字幕| 日日夜夜精品视频免费| 日韩免费成人网| 国产精品一区二区在线观看网站| 国产区在线观看成人精品 | 日韩欧美不卡在线观看视频| 久久av资源站| 亚洲国产精品99久久久久久久久| 99re亚洲国产精品| 亚洲成人你懂的| 日韩视频免费观看高清完整版| 国产在线精品一区二区不卡了 | 成人免费视频在线观看| 欧美日韩一区二区在线观看视频| 日韩av中文在线观看| 久久免费视频一区| 91亚洲资源网| 日韩专区在线视频| 久久综合色婷婷| 色av成人天堂桃色av| 免费在线观看不卡| 国产精品午夜在线观看| 欧美午夜片在线看| 激情深爱一区二区| 尤物视频一区二区| 欧美电影免费观看高清完整版 | 亚洲精品久久久蜜桃| 日韩午夜中文字幕| 成人黄色777网| 午夜精品久久久久久久久久久 | 亚洲欧美一区二区三区极速播放| 欧美美女激情18p| 国产精品一区二区黑丝 | 国产成人av网站| 亚洲妇女屁股眼交7| 久久九九久精品国产免费直播| 色播五月激情综合网| 久久99精品国产| 一区二区三区欧美激情| 精品久久久网站| 欧洲国产伦久久久久久久| 久久草av在线| 亚洲第一久久影院| 中文一区二区在线观看| 日韩一二三区不卡| 在线视频亚洲一区| 成人性生交大片免费看中文网站| 日韩精品1区2区3区| 亚洲伦在线观看| 国产欧美日韩不卡|