//struct sockaddr_in
#include//inet_ntoa
#define DEST_PORT 8000
#define DEST_IP_ADDRESS "10.1.51.150"
/*客户端的处理过程*/
void process_info(int s)
{
int send_num;
int recv_num;
char send_buf[]="tigerjibo";
char recv_buf[50];
while(1){
printf("begin send
");
send_num = send(s,send_buf,sizeof(send_buf),0);
if (send_num < 0){
perror("send");
exit(1);
} else {
printf("send sucess:%s
",send_buf);
}
printf("begin recv:
");
recv_num = recv(s,recv_buf,sizeof(recv_buf),0);
if(recv_num < 0){
perror("recv");
exit(1);
} else {
recv_buf[recv_num]=' ';
printf("recv sucess:%s
",recv_buf);
}
}
}
int main(int argc,char *argv[])
{
int sock_fd;
struct sockaddr_in addr_serv;//服务器端地址
sock_fd = socket(AF_INET,SOCK_STREAM,0);
if(sock_fd < 0){
perror("sock");
exit(1);
} else {
printf("sock sucessful:
");
}
memset(&addr_serv,0,sizeof(addr_serv));
addr_serv.sin_family = AF_INET;
addr_serv.sin_port = htons(DEST_PORT);
addr_serv.sin_addr.s_addr = inet_addr(DEST_IP_ADDRESS);
if( connect(sock_fd,(struct sockaddr *)&addr_serv,sizeof(struct sockaddr)) < 0){
perror("connect");
printf("connect (%d)
",errno);
exit(1);
} else {
printf("connect sucessful
");
}
process_info(sock_fd);
close(sock_fd);
}
上位机
Private Sub Form_Load()
Text1.Text = "192.168.1.113"
Text2.Text = "8000"
Winsock1.LocalPort = Text2.Text
Text3.Text = ""
Text4.Text = ""
End Sub
Private Sub Timer1_Timer()
Select Case Winsock1.State
Case 0: Label1.Caption = "服务器关闭"
Case 2: Label1.Caption = "服务器侦听"
Case 7: Label1.Caption = "服务器已经连接"
End Select
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.Accept requestID
SendMsg = "You have connected to client!"
Winsock1.SendData SendMsg
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim revData As String
'If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.GetData revData
'If Text3.Test = "" Then
Text3.Text = revData
'Else
'Text3.Text = Text3.Text & vbCrLf & "To Server" & revData
'End If
SendMsg = "Receive the string successfully!"
Winsock1.SendData SendMsg
End Sub
上位机的程序中通信的协议都被VB封装起来。按照VB的服务器的编写就可以了