Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Распределённые приложения и сеть > не отправляются данные через сокет


Автор: ddRoot2 28.12.2008, 15:44
Всем привет. У меня проблема с соединением с сервером через сокеты.
Код формочки:
Код

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.IO;
using System.Net;
using System.Net.Sockets;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        Socket s;
        public Form1()
        {
            InitializeComponent();
        }

        private void openBtn_Click(object sender, EventArgs e)
        {
            string host = "localhost";
            int port = 1872;
            s = new Socket(AddressFamily.InterNetwork, 
                SocketType.Stream, ProtocolType.Tcp);
            IPAddress[] addr = Dns.GetHostEntry(host).AddressList;
            s.Connect(addr[0], port);
        }

        private void closeBtn_Click(object sender, EventArgs e)
        {
            s.Shutdown(SocketShutdown.Both);
            s.Close();
        }

        private void sendBtn_Click(object sender, EventArgs e)
        {
            s.Send(Encoding.ASCII.GetBytes("This is a test"));
        }

    }
}

При нажатии open открывается соединение, сервер видит клиента и серверу почему-то приходит пустая строка. 
При нажатии send ничего не происходит.
При нажатии close все нормально - сокет закрывается, сервер это нормально видит.

Такой вариант формы:
Код

...
            s = new Socket(AddressFamily.InterNetwork, 
                SocketType.Stream, ProtocolType.Tcp);
            IPAddress[] addr = Dns.GetHostEntry(host).AddressList;
            s.Connect(addr[0], port);
            s.Send(Encoding.ASCII.GetBytes("This is a test (connect)"));//это добавил
...

Этот вариант первое сообщение отсылает (которое при соединении), остальные нет.

Как сделать, чтоб передача сообщения при нажатии на кнопку работала? (сервер рабочий, проверял...)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)