您的位置:首页 > 理论基础 > 计算机网络

java 实现tcp与udp读取与发送数据

2009-10-02 10:14 627 查看
//TCP

import java.io.*;
import java.net.*;
class TCPServer{
public static void main(String argv[]) throws Exception
{
String ClientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(4340);

while(true){
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient =
new BufferedReader(new InputStreamReader(
connectionSocket.getInputStream()));
DataOutputStream outToClient =
new DataOutputStream(
connectionSocket.getOutputStream());
ClientSentence = inFromClient.readLine();
//outToClient.writeBytes(ClientSentence);
try{
String temp = null;
File f = new File(ClientSentence+".txt");
FileReader file = new FileReader(f);
BufferedReader in = new BufferedReader(file);
while((temp = in.readLine())!=null){
outToClient.writeBytes(temp+'/n');
}
file.close();
in.close();
}catch(FileNotFoundException e1){

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

import java.io.*;
import java.net.*;
class TCPClient{
public static void main(String argv[]) throws Exception
{
String sentence;
String modifiedSentence;
BufferedReader inFromUser =
new BufferedReader(
new InputStreamReader(System.in));
Socket ClientSocket = new Socket("localhost",4340);
DataOutputStream outToServer =
new DataOutputStream(
ClientSocket.getOutputStream());
BufferedReader inFromServer =
new BufferedReader(new InputStreamReader(
ClientSocket.getInputStream()));
sentence =inFromUser.readLine();
outToServer.writeBytes(sentence + '/n');
modifiedSentence = inFromServer.readLine();
System.out.println("FROM SERVER:"+
modifiedSentence);
ClientSocket.close();
}
}

//UDP实现

import java.io.*;
import java.net.*;
class UDPServer {
public static void main(String args[]) throws Exception
{
DatagramSocket serverSocket = new DatagramSocket(4349);
byte[] receiveData = new byte[3];
byte[] sendData = new byte[1024];
while(true){
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData());
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
//String capitalizedSentence = sentence.toUpperCase();
//sendData = capitalizedSentence.getBytes();

// DatagramPacket sendPacket =
// new DatagramPacket(sendData, sendData.length,IPAddress,port);
// serverSocket.send(sendPacket);
System.out.println("sentence = "+sentence);
try{
String temp = null;
File f = new File(sentence+".txt");
FileReader file = new FileReader(f);
BufferedReader in = new BufferedReader(file);
while((temp = in.readLine())!=null){
temp += '/n';
sendData = temp.getBytes();
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length,IPAddress,port);
serverSocket.send(sendPacket);
}
file.close();
in.close();
}catch(FileNotFoundException e1){

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

import java.io.*;
import java.net.*;
class UDPClient {
public static void main(String args[]) throws Exception
{
BufferedReader inFromUser =
new BufferedReader(new InputStreamReader(System.in));
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName("localhost");
byte[] sendData = new byte[3];
byte[] receiveData = new byte[1024];

String sentence = inFromUser.readLine();
sendData = sentence.getBytes();
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length,
IPAddress,4349);
clientSocket.send(sendPacket);

DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
String modifiedSentence=
new String(receivePacket.getData());

System.out.println("FROM SERVER:" + modifiedSentence);
clientSocket.close();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐