JavaのSocketで簡単なチャットツールを作成
1、
package com.java.socket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String args[]) throws IOException {
String reces = null;
int len;
Socket socket = null;
OutputStream outputstream = null;
InputStream inputstream = null;
byte[] rece = new byte[1000];
try {
ServerSocket serversocket = new ServerSocket(9527); // , 9527
while (true) {
socket = serversocket.accept();
inputstream = socket.getInputStream();//
outputstream = socket.getOutputStream();//
len = inputstream.read(rece);//
if (len != 0)
reces = new String(rece, 0, len);
System.out.println(reces);
BufferedReader bufferreader = new BufferedReader(
new InputStreamReader(System.in));
outputstream.write((" ....."+bufferreader.readLine()).getBytes());//
}
} catch (Exception e) {
e.printStackTrace();
} finally {
inputstream.close();
outputstream.close();
socket.close();// ,
}
}
}
2、クライアントコード
package com.java.socket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException {
String ServerIpAddress = "127.0.0.1";// IP
String words = "Hello";//
String temp = null;
byte[] serverSay = new byte[1000];// <1KB
InputStreamReader read = null;
int len = 0;
Socket s = null;
OutputStream outputstream = null;
InputStream inputstream = null;
// IP
System.out.println(" IP( ):");
read = new InputStreamReader(System.in);
try {
temp = new BufferedReader(read).readLine();
if (!temp.equals(""))
ServerIpAddress = temp;
} catch (IOException e1) {
}
// Message
System.out.println(" ( ) ---- QUIT !!:");
read = new InputStreamReader(System.in);
while (true) {
try {
temp = "Hello";
temp = new BufferedReader(read).readLine();
words = temp;
if (words.equals("quit"))
break;
temp = " ....." + words;
//
s = new Socket(InetAddress.getByName(ServerIpAddress), 9527);// IP
outputstream = s.getOutputStream();
inputstream = s.getInputStream();
outputstream.write(temp.getBytes("gbk"));//
len = inputstream.read(serverSay);//
System.out.println( new String(serverSay, 0, len));//
} catch (Exception e) {
} finally {
inputstream.close();
outputstream.close();
s.close();// ,
}
}// end while
}
}