您的位置:首页 > 其它

perl socket 客户端发送消息

2017-03-08 10:39 232 查看
use IO::Socket::INET;
use Data::Dumper;
$|=1;
$sock = IO::Socket::INET->new(PeerAddr => '10.3.229.1',
PeerPort => '745',
Proto=>'tcp'
) or die "$!\n";
my $tab="     ";
my $data="^\0Xd$tab";
$data .="5555$tab";
$data .="$tab";
$data .="N$tab";
$data .="haiwu$tab";
$data .="18072722237$tab";
print $data."\n";
chomp $data;
#my $message=<$sock>;
#$sock->recv($message,1024);
#print "Received from Server :$message\n";
$sock->send("$data");
#print "Received from server:$message\n";
sleep (10);
close ($sock);

package com.jiudao.dxin;

import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.UnknownHostException;
import java.util.Properties;

public class Message {

/**
* @param args
*/
public void send(String sWorkNo,String sPhoneNo,String sMessage){

java.io.InputStream in = getClass().getResourceAsStream(
"/config.properties");
Properties prop = new Properties();
try {
prop.load(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String ipaddress = prop.getProperty("ipaddress");
int port = Integer.parseInt(prop.getProperty("port"));

java.net.Socket socket;
InputStream Is;
OutputStream Os;
DataInputStream DIS;
PrintStream PS;
//分隔符
char cTab = (char) 9;
// 报文头
String sSendMessage = "" + (char) 28 + (char) 48 + (char) 88 + (char) 100 + (char) 9;
// 工号
sSendMessage += sWorkNo + cTab;
// 定时发送时间 为空表示立即发送
sSendMessage += "" + cTab;
// 状态报告位
sSendMessage += "N" + cTab;
// 短线内容
sSendMessage += sMessage + cTab;
// 手机号码 用分隔符|进行分隔
sSendMessage += sPhoneNo + "|" + cTab;

//连接服务端口
try {
socket = new java.net.Socket(ipaddress, port);
// 获得对应socket的输入/输出流
Is = socket.getInputStream();
Os = socket.getOutputStream();
// 建立数据流
DIS = new DataInputStream(Is);
PS = new PrintStream(Os);
// 将读取得字符串传给server
//System.out.print("Sending ... " + sSendMessage);
PS.println(sSendMessage);
//System.out.println("OK");
// 关闭连接
DIS.close(); // 关闭数据输入流
PS.close(); // 关闭数据输出流
Is.close(); // 关闭输入流
Os.close(); // 关闭输出流
socket.close(); // 关闭socket
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public static void main(String[] args) {
// TODO Auto-generated method stub
String sWorkNo = args[0];
String sPhoneNo = args[1];
String sMessage = args[2];

Message message = new Message();
message.send(sWorkNo, sPhoneNo, sMessage);
message = null;

}

}

(char) 28 表示^\

(char) 48 表示 0

(char) 88  表示X

(char) 100 表示d
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: