자바 네트워크 통신 기술 의 간단 한 채 팅 애플 릿
자바 의 통신 기술 을 배 운 후 간단 한 창 채 팅 프로그램 을 만 들 었 습 니 다.절 차 는 매우 간단 하 다.주요 목적 은 연습 을 통 해 자신 이 배 운 것 을 공 고 히 하고 여기에 기록 하 는 것 이다.다음은 바로 코드 를 올 립 니 다.
우선 서버 코드:
package ChatTwoPackage;
import java.io.*;
import java.net.*;
public class ChatTwoServer {
public ChatTwoServer(int port,String name) throws IOException
{
ServerSocket server=new ServerSocket(port);// seversocket , tcp 。 port, tcp 。
System.out.print(" , !");
Socket client=server.accept();// socket , 。
new ChatTwoClient(name,client);// 。
server.close();
}
public static void main(String[] args) throws IOException {
new ChatTwoServer(2001,"SQ");
}
}
그리고 클 라 이언 트 의 코드:
package ChatTwoPackage;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.io.*;
public class ChatTwoClient extends JFrame implements ActionListener {
private String name;
private JTextArea text_re;
private JTextField text_se;
private PrintWriter cout;
private JButton buttons[];
public ChatTwoClient(String name,Socket socket) throws IOException
{
super(" :"+name+InetAddress.getLocalHost().getHostAddress()+":"+socket.getLocalPort());
this.setBounds(320, 240, 400, 240);
this.text_re=new JTextArea();
this.text_re.setEditable(false);
this.getContentPane().add(new JScrollPane(this.text_re));
JToolBar toolBar=new JToolBar();
this.getContentPane().add(toolBar,"South");
toolBar.add(this.text_se=new JTextField(30));
buttons=new JButton[2];
buttons[0]=new JButton(" ");
buttons[1]=new JButton(" ");
toolBar.add(buttons[0]);
toolBar.add(buttons[1]);
buttons[0].addActionListener(this);
buttons[1].addActionListener(this);// ,
this.setVisible(true);
this.name=name;
this.cout=new PrintWriter(socket.getOutputStream(),true);// socket
this.cout.println(name);
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream())); // socket , GBK ,
String line=" "+br.readLine()+" ";
while(line!=null&&!line.endsWith("bye"))
{
text_re.append(line+"\r
");
line=br.readLine();
}// ,
br.close();
this.cout.close();
socket.close();
buttons[0].setEnabled(false);
buttons[1].setEnabled(false);
}
public ChatTwoClient(String name,String host,int port) throws IOException
{
this(name,new Socket(host,port));//
}
public void actionPerformed(ActionEvent ev)
{
if(ev.getActionCommand().equals(" "))
{
this.cout.println(name+":"+text_se.getText());
text_re.append(" :"+text_se.getText()+"
");
text_se.setText("");
}// , ,
if(ev.getActionCommand().equals(" "))
{
text_re.append("
");
this.cout.println(name+"
"+"bye
");
buttons[0].setEnabled(false);
buttons[1].setEnabled(false);
}// , bye
}
public static void main(String[] args) throws IOException {
new ChatTwoClient("mxl","127.0.0.1",2001); //ip
}
}
실행 효과:설명:
1.두 대의 컴퓨터 는 한 대의 서버 로 서 서버 로 서 의 컴퓨터 는 두 개의 코드 가 필요 하 다.먼저 서버 의 코드 를 실행 하고 클 라 이언 트 기기 의 연결 을 기다 리 며 클 라 이언 트 가 클 라 이언 트 코드 를 실행 한 후에 연결 성공 을 알 립 니 다.메 시 지 를 보 낼 수 있 습 니 다.
2.코드 를 실행 하기 전에 ip 주 소 를 자신의 컴퓨터 의 현재 ip 주소(Modem,ISDN,ADSL,유선 광대 역,동네 광대 역 등 방식 으로 인터넷 에 접속 하 는 컴퓨터 로 바 꿔 야 합 니 다.인터넷 에 접속 할 때마다 할당 되 는 IP 주소 가 다 릅 니 다.이 를 동적 IP 주소 라 고 합 니 다).컴퓨터 로 클 라 이언 트 와 서버 를 충당 하려 면 ip 주 소 를 127.0.0.1(127.0.0.1 은 리 턴 주소 로 로 로 컬 컴퓨터 를 말 하 며 일반적으로 테스트 에 사용 합 니 다)이 라 고 쓰 십시오.먼저 서버 코드 를 실행 하고 클 라 이언 트 코드 를 실행 하면 됩 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.