<span style="font-family: Arial, Helvetica, sans-serif;">服務器端:</span>
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
int main(int argc, char *argv[])
{
int server_sockfd, client_sockfd;
int server_len, client_len;
struct sockaddr_in server_address;
struct sockaddr_in client_address;
int i, byte;
char char_send[100], char_recv[100];
unlink("server_socket"); //刪除原有server_socket對象
server_sockfd = socket(AF_INET, SOCK_STREAM, 0);
server_address.sin_family = AF_INET;
//server_address.sin_addr.s_addr = htonl(INADDR_ANY);
server_address.sin_addr.s_addr = inet_addr("192.168.1.102"); //服務器地址
server_address.sin_port = 9735; //服務器監聽地址
server_len = sizeof(server_address);
bind(server_sockfd, (struct sockaddr *)&server_address, server_len);
//綁定socket對象
listen(server_sockfd, 5);
printf("server linsting\n");
client_len = sizeof(client_address);
client_sockfd = accept(server_sockfd, (struct sockaddr *)&client_address, (socklen_t *)&client_len);
while(1) {
if((byte = recv(client_sockfd, &char_recv, strlen(char_recv), 0)) == -1) {
perror("recv");
exit(EXIT_FAILURE);
}
printf("recv:%s\n", char_recv);
printf("send:");
//scanf("%s\n", char_send);
gets(char_send);
if((byte = send(client_sockfd, &char_send, strlen(char_send), 0)) == -1) {
perror("send");
exit(EXIT_FAILURE);
}
}
shutdown(client_sockfd, 2);
shutdown(server_sockfd, 2);
return 0;
}
client端:
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{
int sockfd;
int len;
struct sockaddr_in address;
int result;
int i,byte;
char char_recv[100], char_send[100];
if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
perror("socket");
exit(EXIT_FAILURE);
}
address.sin_family = AF_INET;
address.sin_addr.s_addr = inet_addr("192.168.1.102"); //服務器地址
address.sin_port = 9735; //服務器監聽地址
len = sizeof(address);
if((result = connect(sockfd, (struct sockaddr *)&address, len)) == -1) {
perror("connect");
exit(EXIT_FAILURE);
}
while(1) {
printf("send:");
// scanf("%s\n",char_send);
gets(char_send);
if((byte = send(sockfd, &char_send, strlen(char_send), 0)) == -1) {
perror("send");
exit(EXIT_FAILURE);
}
if((byte = recv(sockfd, &char_recv, strlen(char_recv), 0)) == -1) {
perror("recv");
exit(EXIT_FAILURE);
}
printf("recv:%s\n", char_recv);
}
close(sockfd);
return 0;
}