C
socket ,connect, recv ve send metodları çağrılır.
Bu metod sadece Linux'ta eğer dinleyen socket kuyruğu (backlog) doluysa EAGAIN döner. Diğer işletim sistemleri ECONNREFUSED dönerler.
send
QT
QTcpSocket ve connectToHost metodları kullanılabilir. Örnek:
Java
İstemci socket açmak için :
C#
İstemci socket için TcpClient veya direkt Socket sınıfı kullanılabilir.
Socket sınıfı
Asenkron bağlanma örneği
TcpClient sınıfı
TcpClient genelde GetStream()'in döndürdüğü akım ile kullanılıyor.
Connect Metodu
Bu metod IP adresi olarak bir string ve port numarası alır.
C# ile Socket arayüzünü Stream olarak kullanabilmek te mümkün. Bu iş için NetworkStream sınıfı kullanılıyor. Bu sınıf Socket sınıfını stream'e çeviren bir adaptör.
Bağlandıktan sonra NetworkStream şöyle kullanılır.
socket ,connect, recv ve send metodları çağrılır.
struct sockaddr_in remote_addr;
char buf[BUFSIZ];
memset(&remote_addr, 0, sizeof(remote_addr));
remote_addr.sin_family = AF_INET;
remote_addr.sin_addr.s_addr = inet_addr("192.168.103.128");
remote_addr.sin_port = htons(8000);
int s = socket(AF_INET, SOCK_STREAM, 0);
connect(s, (struct sockaddr *)&remote_addr, sizeof(struct sockaddr));
int len = recv(s, buf, BUFSIZ, 0);
send(s,buf,SIZE,0);
close(s);
connectBu metod sadece Linux'ta eğer dinleyen socket kuyruğu (backlog) doluysa EAGAIN döner. Diğer işletim sistemleri ECONNREFUSED dönerler.
send
QT
QTcpSocket ve connectToHost metodları kullanılabilir. Örnek:
QTcpSocket socket;
socket.connectToHost(QHostAddress("172.0.0.1", 8080);
if (!socket.waitForConnected(5000)) {
emit connectionFailed();
}
Java
İstemci socket açmak için :
C#
İstemci socket için TcpClient veya direkt Socket sınıfı kullanılabilir.
Socket sınıfı
Asenkron bağlanma örneği
// Create a TCP/IP socket.
Socket client = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
// Connect to the remote endpoint.
client.BeginConnect(remoteEP,
new AsyncCallback(ConnectCallback), client);
Bağlanınca şu metod çağrılırvoid ConnectCallback(IAsyncResult ar)
{
// Retrieve the socket from the state object.
Socket client = (Socket)ar.AsyncState;
// Complete the connection.
client.EndConnect(ar);
}
TcpClient sınıfı
TcpClient genelde GetStream()'in döndürdüğü akım ile kullanılıyor.
Connect Metodu
Bu metod IP adresi olarak bir string ve port numarası alır.
TcpClient c = new TcpClient();
c.Connect("10.0.0.4", 10);
GetStream metoduNetworkStream ns = c.GetStream();
Stream üzerinden string göndermek için bir encoder aracılığıyla string byte[] haline çevrilir.Stream ns = c.GetStream();
ASCIIEncoding transEncoded = new ASCIIEncoding();
byte[] bytes = transEncoded.GetBytes("Are You Kazaa?");
ns.Write(bytes, 0, bytes.Length);
byte[] byte2 = new byte[100];
int k = ns.Read(byte2, 0, 100);
c.Close();
Bu örnekte ASCII yerine UTF-8 kullanılıyor.NetworkStream ns = c.GetStream();
byte[] buffer = System.Text.Encoding.UTF8.GetBytes("first");
ns.Write(buffer, 0, buffer.Length);
Hiç yorum yok:
Yorum Gönder