Giriş
Bu sınıf TCP istemci soketi içindir. TCP sunucu soketi için ServerSocket sınıfı kullanılır. UDP istemci ve sunucu soketi için DatagramSocket sınıfı kullanılır.
Bu sınıfı kullanmak için şu satırı dahil ederiz.
Şöyle yaparız. Bağlanmak için connect() metodu çağrılır.
Socket'i kapatır.
Şöyle yaparız.
String okumak için şöyle yapılır. Önce InputStream bir Reader ile sarmalanır. Daha sonra Reader BufferedReader ile sarmalanır.
Açıklaması şöyle
getOutputStream - DataOutputStream
Bu sınıf TCP istemci soketi içindir. TCP sunucu soketi için ServerSocket sınıfı kullanılır. UDP istemci ve sunucu soketi için DatagramSocket sınıfı kullanılır.
Bu sınıfı kullanmak için şu satırı dahil ederiz.
import java.net.Socket;
constructorŞöyle yaparız. Bağlanmak için connect() metodu çağrılır.
Socket clientSocket = new Socket();
constructor - IP + Port
Şöyle yaparız. Bu durumd a connect() metodunu çağırmamıza gerek kalmaz.Socket clientSocket = new Socket("10.0.10.1", 445);
InetAddress de verebiliriz.InetAddress serverAddr = InetAddress.getByName("192.168.0.131");
Socket clientSocket
= new Socket(serverAddr, 8080);
Socket bağlanınca debug penceresinden şuna benzer bir çıktı görürüz.Socket[addr=www.nba.com/2.21.246.97,port=80,localport=7846]
close metoduSocket'i kapatır.
clientSocket.close();
connect metodu
Belirtilen IP adresine bağlanmak için şöyle yaparız.String ip = ...;
InetSocketAddress sa = new InetSocketAddress(ip, 52000);
Socket clientSocket = new Socket();
clientSocket.connect(sa);
Timeout verilebilir. Şöyle yaparız.String address = ...;
int port = ...;
int timeout = 5000;
try {
...
clientSocket.connect(new InetSocketAddress(address, port), timeout);
...
} catch (Exception e) {
...
}
getInetAddress metoduŞöyle yaparız.
InetAddress remoteAddress = clientSocket.getInetAddress();
getInputStream metoduString okumak için şöyle yapılır. Önce InputStream bir Reader ile sarmalanır. Daha sonra Reader BufferedReader ile sarmalanır.
InputStreamReader reader = new InputStreamReader(clientSocket.getInputStream());
BufferedReader bufferedReader = new BufferedReader(reader);
string message = bufferedReader.readLine();
Eğer okunacak verinin uzunluğunu tam olarak biliyorsak DataInputStream.readFully() kullanılabilir.DataInputStream iStream = new DataInputStream(sock.getInputStream());
byte[] buf = new byte[100000];
iStream.readFully(buf);
UTF veri okumak için yine DataInputStream kullanılabilir.String line = iStream.readUTF();
getOutputStream Açıklaması şöyle
Closing the returned OutputStream will close the associated socket.
UTF veri göndermek için DataOutputStream kullanılabilir.DataOutputStream dos = new DataOutputStream (clientSocket.getOutputStream());
getOutputStream - PrintWriter
String göndermek için şöyle yaparız.String str = ...;
PrintWriter writer = new PrintWriter (clientSocket.getOutputStream(), true);
writer.println (str);
writer.flush ();
writer.close ();
getOutputStream - PrintStream
Şöyle yaparız.
Socket'in bağlı olup olmadığını döndürür.
String str = ...;
OutputStream out = clientSocket.getOutputStream();
PrintStream pout = new PrintStream (out);
pout.print (str);
out.flush ();
out.close ();
isConnected metoduSocket'in bağlı olup olmadığını döndürür.
if (!clientSocket.isConnected()){...}
Hiç yorum yok:
Yorum Gönder