[Java] trao đổi giữa 2 chương trình bằng Socket. Đề tài đọc số từ Client gởi lên Server
5 posters
Trang 1 trong tổng số 1 trang
[Java] trao đổi giữa 2 chương trình bằng Socket. Đề tài đọc số từ Client gởi lên Server
- Lưu ý chạy chương trinh Server trước khi chạy chương trình Client.
- Vào cmd gõ "ipconfig" đọc địa chỉ TCP/IP v4 để điền địa chỉ chương trình Server khi chương trình Client cần kết nối:
- Quy ước chung là port: 8080, có thể đổi port bằng cách can thiệp vào code ở Server:
- Đề: Chương trình Client cho phép người dủng nhập vào 1 số gởi lên chương trình Server số đó, Server xử lý và trả về 1 chuỗi và gởi về cho chương trình Client và Client nhận và hiển thị ra màn hình.
- Đây là trao đổi thông tin giữa 2 chương trình bằng Socket
- Có thể chép 2 chương trình ra 2 máy khác nhau rồi cùng kết nối LAN nội bộ hay Internet rồi chạy kết nối 2 chương trình bình thường bằng cách xem địa chỉ TCP?IPV4 nhập cho Client khi cần kết nối Server
Chương trình Server:
Class luồng trong chương trình Server:
Hàm Main của chương trình Server:
==================================================
Chương trình Client:
Class luồng của Client:
Hàm Main của Client:
- Vào cmd gõ "ipconfig" đọc địa chỉ TCP/IP v4 để điền địa chỉ chương trình Server khi chương trình Client cần kết nối:
- Quy ước chung là port: 8080, có thể đổi port bằng cách can thiệp vào code ở Server:
- Đề: Chương trình Client cho phép người dủng nhập vào 1 số gởi lên chương trình Server số đó, Server xử lý và trả về 1 chuỗi và gởi về cho chương trình Client và Client nhận và hiển thị ra màn hình.
- Đây là trao đổi thông tin giữa 2 chương trình bằng Socket
- Có thể chép 2 chương trình ra 2 máy khác nhau rồi cùng kết nối LAN nội bộ hay Internet rồi chạy kết nối 2 chương trình bình thường bằng cách xem địa chỉ TCP?IPV4 nhập cho Client khi cần kết nối Server
Chương trình Server:
Class luồng trong chương trình Server:
- Code:
import java.io.*;
import java.net.*;
import java.util.*;
public class ServerNumber extends Thread {
ServerSocket ss;
Scanner input;
PrintWriter output;
Socket s;
int port = 7;
String cs[] = {"Không","Một","Hai","Ba","Bốn","Năm","Sáu","Bảy","Tám","Chín"};
String s2="Không phải là số nguyên";
String m;
public ServerNumber() {
try {
ss = new ServerSocket(port);
} catch (IOException e) {
// TODO Auto-generated catch block
output = new PrintWriter(System.out);
output.println("Server đã được khởi tạo thành công!");
output.flush();
}
}
public ServerNumber(int p)
{
try {
this.port =p;
ss = new ServerSocket(port);
} catch (IOException e) {
// TODO Auto-generated catch block
output = new PrintWriter(System.out);
output.println("Server đã được khởi tạo thành công!");
output.flush();
}
}
public void Reviced()
{
try {
input = new Scanner(s.getInputStream());
m = input.nextLine();
} catch (IOException e) {
e.printStackTrace();
}
}
public void Proscing()
{
int v = Integer.valueOf(m).intValue();
s2="Không phải là số nguyên";
for(int j=0;j<=9;j++)
if(v==j) s2 = cs[j];
}
public void Send()
{
try {
output = new PrintWriter(s.getOutputStream());
output.println(s2);
output.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
public void run()
{
while(true)
{
try {
s = ss.accept();
Reviced();
Proscing();
Send();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Hàm Main của chương trình Server:
- Code:
import java.io.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
PrintWriter output = new PrintWriter(System.out);
output.print("Server đang khởi động...!");
output.flush();
ServerNumber S= new ServerNumber(8080);
S.start();
}
}
==================================================
Chương trình Client:
Class luồng của Client:
- Code:
import java.util.*;
import java.io.*;
import java.net.*;
public class ClientNumber extends Thread {
Socket s;
String address = "10.0.3.191";
Scanner input;
PrintWriter output;
int port = 8080;
String m;
String s1;
boolean connected = false;
public ClientNumber()
{
}
public ClientNumber(String ad, int p)
{
this.address = ad;
this.port = p;
}
public void connect()
{
try {
s = new Socket(this.address, this.port);
this.connected = true;
} catch (UnknownHostException e) {
} catch (IOException e) {
}
}
public void disconnect()
{
try {
s.close();
this.connected = false;
} catch (IOException e) {
}
}
public void InputString()
{
input = new Scanner(System.in);
output = new PrintWriter(System.out);
output.print("Nhập vào 1 số: ");
output.flush();
m = input.nextLine();
}
public void Send()
{
try {
output = new PrintWriter(s.getOutputStream());
output.println(m);
output.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void Reviced()
{
try {
input = new Scanner(s.getInputStream());
s1 = input.nextLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void Look()
{
output = new PrintWriter(System.out);
output.println("Kết quả: "+ s1);
output.flush();
}
}
Hàm Main của Client:
- Code:
import java.io.PrintWriter;
import java.util.Scanner;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String address = "10.0.3.191";
int port = 8080;
PrintWriter output = new PrintWriter(System.out);
Scanner input = new Scanner(System.in);
output.print("Nhập địa chỉ máy chủ: ");
output.flush();
address = input.nextLine();
output.print("Nhập cổng port: ");
output.flush();
port = input.nextInt();
ClientNumber c = new ClientNumber(address, port);
while(true){
c.connect();
if (c.connected) {
c.InputString();
c.Send();
c.Reviced();
c.Look();
c.disconnect();
} else {
output.print("Kết nối Server thất bại! ");
output.flush();
}
}
}
}
Re: [Java] trao đổi giữa 2 chương trình bằng Socket. Đề tài đọc số từ Client gởi lên Server
Bác Tâm cho hỏi cái này rồi chạy làm sao z? Bác hướng dẫn chi tiết tí dc không? sao thấy mơ hồ quá....
huynhtai- Posts : 90
Thanked : 3
22/09/2011
Tài Sản
Thú nuôi:
Re: [Java] trao đổi giữa 2 chương trình bằng Socket. Đề tài đọc số từ Client gởi lên Server
Thanks Bác Tâm nhìu. E còn gà môn nè
huynhvantrang- Posts : 4
Thanked : 0
14/01/2011
Re: [Java] trao đổi giữa 2 chương trình bằng Socket. Đề tài đọc số từ Client gởi lên Server
éo chạy được...server not found
Re: [Java] trao đổi giữa 2 chương trình bằng Socket. Đề tài đọc số từ Client gởi lên Server
Cao siêu quá bác Tâm oi, không hiểu
-------------
ah hiểu rồi, cái này là server xữ lý song song cùng lúc nhiều yêu cầu từ các client.
-------------
ah hiểu rồi, cái này là server xữ lý song song cùng lúc nhiều yêu cầu từ các client.
shippou777- Posts : 460
Thanked : 8
11/10/2011
Tài Sản
Thú nuôi:
Re: [Java] trao đổi giữa 2 chương trình bằng Socket. Đề tài đọc số từ Client gởi lên Server
Em mới chỉ cho Bác Tài, Bác Tài rảnh viết bài hướng dẫn cách chạy chỉ lại cho anh em đi, em làm biến viết bài hướng dẫn. Nếu ai muốn hướng dẫn trực tiếp thì cài TeamViewer 7 rồi đọc pass và id cho em để em hướng dẫn từ xa..
Re: [Java] trao đổi giữa 2 chương trình bằng Socket. Đề tài đọc số từ Client gởi lên Server
Các bác lưu ý là khi copy code về thì nhớ đổi tên đúng tên Class mà mình tạo nhé.. Chắc nhờ bác Tài viết bài hướng dẫn cho anh em quá, em làm lười viết quá. Còn muốn tư vấn từ xa thì nhá máy em cái em online 01665598343
Re: [Java] trao đổi giữa 2 chương trình bằng Socket. Đề tài đọc số từ Client gởi lên Server
Admin đã viết:Em mới chỉ cho Bác Tài, Bác Tài rảnh viết bài hướng dẫn cách chạy chỉ lại cho anh em đi, em làm biến viết bài hướng dẫn. Nếu ai muốn hướng dẫn trực tiếp thì cài TeamViewer 7 rồi đọc pass và id cho em để em hướng dẫn từ xa..
Bác Tâm chỉ tớ hồi trưa thui..hjhj...có j sai sót a e đừng chém tớ nhe....
đầu tiên các bác tạo 2 cái project:
1 cái server, 1 cái client.
- trong project server: tạo ra 2 class.
+ class thứ 1:copy "Class luồng trong chương trình Server" vào(đặt tên class là "ServerNumber" cho giống bác Tâm, muốn đặt khác cũng dc mà phải vô chương trình sửa tên lại).
+ class thứ 2 là class main: copy "Hàm Main của chương trình Server" cũng tương tự(lưu ý đặt tên là "Main")
chạy thử class main ra dòng "Server đang khởi động...!" là ok!!!
- Trong project client làm tương tự, cũng lưu ý cách đặt tên.(tạo 2 class, copy giống z)
--> chạy thử class main của client:
in ra dòng "Nhập địa chỉ máy chủ: " nhập địa chỉ ip máy vào.nhập xong in ra dòng "Nhập cổng port: " nhập 8080.
ok....
huynhtai- Posts : 90
Thanked : 3
22/09/2011
Tài Sản
Thú nuôi:
Similar topics
» [Java] trao đổi giữa 2 chương trình bằng Socket. Đề tài thực hiện phép toàn Operant1 OP Operant2
» [Java]Bài tập về nhà từ điển Anh-Việt trao đổi thông tin giữa 2 luồng trong 1 chường trình bằng ống dẫn Pipe
» [Java]Chương trình Client-Server sử dụng Socket ở chế độ có nối kết TCP/IP Đề tài LIST Tenthumuc
» Tổng hợp các chương trình tạo máy ảo.
» Chương trình tính N!
» [Java]Bài tập về nhà từ điển Anh-Việt trao đổi thông tin giữa 2 luồng trong 1 chường trình bằng ống dẫn Pipe
» [Java]Chương trình Client-Server sử dụng Socket ở chế độ có nối kết TCP/IP Đề tài LIST Tenthumuc
» Tổng hợp các chương trình tạo máy ảo.
» Chương trình tính N!
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|