<pre name="code" class="java">//*******************************//
//*2014年7月3日10:33:25*//
//*本程序主要功能:*//
//*客户端:*//
//*将在此端中写入的内容,传输至服务器中*//
//*******************************//
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.net.*;
import javax.swing.border.*;//swing中的边界包,此处用了BevelBorder类
import java.awt.event.*;//awt中事件处理包,此处用了ActionEvent和ActionListener类
public class TestSocketClient extends JFrame
{
private PrintWriter writer;//PrintWriter:向文本输出流打印对象的格式化表示形式
Socket socket;//创建Socket对象
private JTextArea ta = new JTextArea();//定义文本区
private JTextField tf = new JTextField();//定义文本字段
Container cc;//定义容器
public TestSocketClient(String title)//构造方法
{
super(title);//调用父类的构造方法,设置窗体的标题
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置退出应用程序后的默认窗口关闭操作
cc = this.getContentPane();//返回此窗体的 ContentPane 对象(应用多态)
final JScrollPane scrollPane = new JScrollPane();//JScrollPane 管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口
scrollPane.setBorder(new BevelBorder(BevelBorder.RAISED));//设置此组件的边框,实现简单的双线斜面边框
scrollPane.setViewportView(ta);//创建一个视口并设置其视图
cc.add(ta,"North");//将类JTextArea变量ta加入至面板上方(北部)
cc.add(tf,"South");//将类JTextField变量tf加入至面板下方(南部)
tf.addActionListener//添加指定的操作侦听器以从此文本字段接收操作事件
(
new ActionListener()//添加用于接收操作事件的侦听器接口
{
public void actionPerformed(ActionEvent e)//参数:指示发生了组件定义的动作的语义事件
{
writer.println(tf.getText());//获取文本字段(tf.getText())的内容,将其输出
ta.append(tf.getText() + '\n');//
ta.setSelectionEnd(ta.getText().length());//将选择结束点设置为指定的位置,新的结束点限制在当前选定开始位置处或之后。
tf.setText("");//将此文本设置为指定文本
}
}
);
}
private void connect()
{
ta.append("try to connect");//在文本区将给定文本追加到文本区的当前文本
try
{
socket = new Socket("192.168.1.15",8902);//设置服务器的IP地址和端口Port
writer = new PrintWriter(socket.getOutputStream(),true);//向文本输出流打印对象的格式化表示形式,返回此套接字的输出流
ta.append("connect completely");//在文本区将给定文本追加到文本区的当前文本
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
// TODO 自动生成的方法存根
TestSocketClient client = new TestSocketClient("set data to server");
//定义并初始化本类
client.setSize(200,200);
client.setVisible(true);//设置可见性
client.connect();//调用客户端连接方法
}
}
3.Socket单向通信--客户端
最新推荐文章于 2021-07-24 21:45:25 发布